怎么使用C++语言,写一个返回函数指针的函数。
时间: 2024-04-11 10:29:10 浏览: 164
C++中返回指向函数的指针示例
5星 · 资源好评率100%
你可以使用C++语言编写一个返回函数指针的函数。下面是一个示例代码:
```cpp
#include <iostream>
// 定义一个函数指针
typedef int (*FuncPtr)(int, int);
// 返回函数指针的函数
FuncPtr getFunctionPointer(int choice) {
switch (choice) {
case 1:
return [](int a, int b) { return a + b; }; // 返回加法函数指针
case 2:
return [](int a, int b) { return a - b; }; // 返回减法函数指针
default:
return nullptr; // 默认返回空指针
}
}
int main() {
int choice;
std::cout << "请选择操作:1.相加 2.相减" << std::endl;
std::cin >> choice;
FuncPtr funcPtr = getFunctionPointer(choice);
if (funcPtr) {
int result = funcPtr(5, 3);
std::cout << "结果:" << result << std::endl;
} else {
std::cout << "无效选择!" << std::endl;
}
return 0;
}
```
在上面的示例中,我们定义了一个函数指针类型 `FuncPtr`,然后编写了一个返回函数指针的函数 `getFunctionPointer`。根据传入的选择,该函数返回不同的函数指针。在 `main` 函数中,我们根据用户的选择获取相应的函数指针,并调用该函数指针进行计算。
注意,在 C++11 及以上版本中,我们可以使用 lambda 表达式来定义匿名函数,从而简化代码。以上示例中使用的 lambda 表达式用于定义加法和减法函数。
阅读全文