您的位置:首页 > 编程语言 > C语言/C++

C++指向函数的指针

2014-03-19 11:21 183 查看
函数指针是指向函数而非指向对象的指针。与其他类型的指针一样,函数指针也指向某个特定的类型。函数类型由其返回类型以及形参表确定,而与函数名无关。(类似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
按任意键继续...
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: