《王道程序员求职宝典》笔记 - 第7章 指针与引用
by 宋强
复杂的函数指针用typedef简化
例如一个函数指针的形式为:
typedef bool (*cmpFunc)(const string &, const string &); //cmpFunc就成为了一个函数指针类型
函数指针的两种使用形式
pf("hi", "bi");
(*pf)("hi", "bi"); //两种使用方式等价
函数的形参为函数指针
void useBigger(const string &, const string &, bool (const string &, const string &));
void useBigger(const string &, const string &, bool (*)(const string &, const string &)); //两种方式等价
返回函数指针
$P_{132} 待补充。$
函数指针作为参数
可以直接将函数作为参数传递给另一个接受函数指针的函数,会被自动转换成函数指针,这个转换可以在参数传递时自动实现,但不可以在返回值中实现,也就是说返回函数指针就只能返回函数指针,不可返回函数。
typedef int func(int *, int); // func 是一个函数 ,而不是一个函数指针
void f1(func); // 正确,f1的形参是一个函数指针,func自动转换为函数指针
func f2(int); // 错误,func无法被自动转换
func * f3 ( int ); // 正确,f3 返回一个函数指针
引用
- 一旦定义了引用就必须绑定对象,,且不可修改。
- 不可定义引用对象的引用。
- 没有引用数组。