前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C++指向函数的指针

C++指向函数的指针

作者头像
卡尔曼和玻尔兹曼谁曼
发布2019-01-25 15:29:29
1.5K0
发布2019-01-25 15:29:29
举报

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

函数指针的声明如下:

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

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

先看一个实例:

代码语言:javascript
复制
#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;
}

运行结果如下:

代码语言:javascript
复制
25
6
按任意键继续...

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

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

做函数的参数实例如下:

代码语言:javascript
复制
#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;
}

运行结果如下:

代码语言:javascript
复制
25
-1
按任意键继续...
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2014年03月19日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档