0
点赞
收藏
分享

微信扫一扫

C++指向函数的指针


函数指针是指向函数而非指向对象的指针。与其他类型的指针一样,函数指针也指向某个特定的类型。函数类型由其返回类型以及形参表确定,而与函数名无关。(类似C#中的代理)

函数指针的声明如下:

返回值类型 (*函数指针名)(函数参数列表)

例如:double (*fun)(double, double)

先看一个实例:

#include <iostream>

using namespace std;

double add(double num1, double num2)
{
return num1 + num2;
}

double add(double num1, double num2, double num3)
{
return num1 + num2 + num3;

}

int main()
{
double (*funAdd)(double ,double) = add;
double result = funAdd(12,13);
cout<<result<<endl;
double (*funAdd3)(double, double, double) = add;
result = funAdd3(1,2,3);
cout<<result<<endl;
}


运行结果如下:

25
6
按任意键继续...


函数指针只能通过同类型的函数或函数指针或0常量表达式进行初始化或赋值。

函数指针有两个用途:调用函数和做函数的参数。

做函数的参数实例如下:

#include <iostream>

using namespace std;

void fun(int num1, int num2, int (*fp)(int, int))
{
int result = fp(num1, num2);
cout<<result<<endl;
}

int add(int num1, int num2)
{
return num1 + num2;
}

int subtract(int num1, int num2)
{
return num1 - num2;
}

int main()
{
fun(12,13,add);
fun(12,13,subtract);
return 0;
}


运行结果如下:

25
-1
按任意键继续...



举报

相关推荐

0 条评论