c++++ 中的函数指针是指向函数的变量,允许将函数作为参数传递。使用函数指针可以通过定义它们,将函数名或 lambda 表达式赋给它们,并像调用普通函数一样调用它们。函数指针广泛应用于函数器,如排序函数器,允许在运行时创建和使用排序函数。

C++ 中函数指针的定义和用法
函数指针是一种指向函数的变量。它提供了将函数作为参数传递的能力,并在运行时调用函数的灵活性。
定义函数指针
在 C++ 中,函数指针可以如下定义:
returntype (*function_ptr_name)(param_type1, param_type2, ...);
例如,定义一个指向接受两个整数参数并返回整数的函数的指针:
int (*add_pointer)(int, int);
初始化函数指针
可以通过将函数名赋给函数指针来初始化它:
add_pointer = add; // 假设 add 是一个接收两个整数并返回整数的函数
或者,可以使用 lambda 表达式创建函数指针:
add_pointer = [](int a, int b) -> int { return a + b; };
调用函数指针
可以像调用普通函数一样调用函数指针:
int result = add_pointer(10, 20);
实战案例:排序函数器
函数指针的一个常见应用是函数器,它允许在运行时创建和使用排序函数。例如,以下代码使用函数指针实现带比较函数的 std::sort:
#include #include #include int main() { std::vector numbers = {3, 1, 5, 2, 4}; // 定义比较函数指针 int (*compare_func)(int, int) = [](int a, int b) -> bool { return a < b; }; // 使用函数指针排序 std::sort(numbers.begin(), numbers.end(), compare_func); // 输出排序后的结果 for (const auto& number : numbers) { std::cout << number << ' '; } return 0;}
以上就是C++ 中函数指针的定义和用法的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1446972.html
微信扫一扫
支付宝扫一扫