今天学习的是函数指针部分,本部分主要从以下几个知识点:
-
1.函数指针
-
2.使用函数指针
-
3.重载函数的指针
-
4.函数指针形参
-
5.返回指向函数的指针
-
6.将auto 和 decltype用于函数指针类型
1.函数指针
函数指针指向的是函数而非对象。和其他指针一样,函数指针指向某种特定类型。函数的类型由它的返回类型和形参类型共同决定,与函数名无关。
例如:
//比较两个string对象的长度
bool lengthCompare (const string &, const string &);
该函数的类型是bool (const string&, const string**&)。要想声明一个可以指向该函数的指针,只需要用指针替换函数名即可:**
// pf指向一个函数,该函数的参数是两个const string的引用,返回值是bool类型
bool (*pf) (const string &, const string &) ; // 未初始化
从我们声明的名字开始分析,可以看到:
pf前面有个*,因此pf是指针;右侧是形参列表,表示pf指向的是函数:再观察左侧,发现函数的返回类型是布尔值。因此,pf就是一个指向函数的指针,其中该函数的参数是两个const string的引用,返回值是bool类型。
注意:<