C++中指向函数的指针可以用来存储函数的地址,并且可以通过这个指针调用该函数。指向函数的指针的语法如下:
return_type (*pointer_name[num])(parameter_list)
其中,return_type
是函数返回值的类型,pointer_name
是指向函数的指针变量名,parameter_list
是函数参数列表,num是array element的数量(如果需要创建数组的话)。
以下是一个简单的不带形参的例子,展示了如何声明和使用指向函数的指针:
#include <iostream>
void greet()
{
std::cout << "Hello, World!" << std::endl;
}
int main()
{
void (*greet_ptr)() = &greet; // 定义指向greet函数的指针
(*greet_ptr)(); // 调用greet函数
return 0;
}
在上面的代码中,我们首先定义了一个名为greet
的函数,该函数输出一条简单的问候语。然后,我们定义了一个指向函数的指针greet_ptr
,并将其初始化为&greet
,即greet
函数的地址。最后,我们通过(*greet_ptr)()
调用了greet
函数。
下面是带有形参的例子:
#include <iostream>
double calculate(double a, double b, double (*c)(double, double));
double hhh(double a, double b);
int main() {
using namespace std;
cout<<calculate(2, 3,hhh);
return 0;
}
double calculate(double a, double b, double (*c)(double, double))
{
return a + b + (*c)(a,b);
}
double hhh(double a, double b)
{
return a + b;
}