c++简记 -- 函数指针

c++简记 – 函数指针

函数

函数是具有别名的代码块

函数不能被值传递进函数 但可通过引用传递被函数调用

函数的身份决定于 参数类型

函数指针

函数指针通常用于填充调用函数的函数引用类型参数

函数指针必须与函数类型严格匹配
函数类型决定于函数的返回类型和参数类型

故而对于重载函数 的指针
与具有重载的函数的某一项重载严格匹配<返回和参数类型>即可

函数指针的特点

1、函数指针对解引用符和取址符不敏感(可选择的不像内置类型指针有严格的区分)

ex1:

	bool (*func) (int&,int&);//定义一个函数指针func(指向返回值为bool类型的函数)
	bool fp(int&,int&);
	
//在向函数指针赋值时函数名加&或不加&等价<都转化为函数指针>
fp=func	fp=&func 

ex2:

bool (*func) (int&,int&);//定义一个函数指针func(指向返回值为bool类型的函数)
bool fp(int&,int&);
//使用函数指针调用函数时加*或者不加*等价<都转化为函数>
bool=fp(1,2);	bool=(*fp)(1,2);

ex3:

函数参数列表中的函数自动转化为函数指针

2、可用nullptr初始化 <不指向任何函数>

3、函数形参和decltype的应用 <表达式的简化>
3.a、函数指针类型的形参表现为函数 但实际是引用传递
bool get_value( int , int funcName(param1,parameter2) )
funcName看似函数 实际调用函数时填充的应当是函数指针
------------------------( 见特点<1>的ex3 )

参数列表中的函数类型较长 可用其他方法简化
int funcName(param1,parameter2);
decltype(funcName) fun;//注意fun此时是和funcName一样的函数类型
//引用传递⬇
bool get_value( int , fun);
bool get_value( int , fun*);//等价(见特点<1>的ex3

)

3.b、函数返回值为函数指针

bool*func(int))(int&int&);
复杂表达式由内而外分析
func是个函数、返回指针,指针部分带有参数和返回值
-->func 是个返回值为 函数指针 的 函数
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值