函数指针
函数指针指向的是函数而非对象。和其他指针一样,函数指针指向某种特定的类型即由函数的返回值类型和参数类型共同决定。
bool (*pf) (const string &,const string &);//要想声明一个函数指针只需要用指针替换函数名即可。
pf是个指针,右侧是形参列表,表示pf指向的是函数。左侧是返回类型。
使用函数指针
当我们把函数名作为一个值使用时,该函数自动转换成指针。
pf = LengthCompare;//pf指向名为LengthCompare的函数
pf = &LengthCompare;//等价的赋值语句:取地址符是可选的
可以直接使用指向函数的指针调用该函数,无需提前解引用指针:
返回指向函数的指针
int (*f1(int)) (int*,int);
//f1有形参列表所以f1是个函数;f1前面有*,所以f1返回一个指针,指针的类型也包含形参列表,所以指针指向函数,该函数的返回类型是int.
尾置返回
auto f1(int) ->int (*) (int*,int);