本文紧紧是自己的学习记录,请大家谨慎参考。
函数的指针指向的是函数而非对象。和其他指针一样,函数指针指向某种特定的类型。函数的类型由他的返回类型和形参类型共同决定。
bool lengthCompare(const string &, const string &);
//函数类型为bool (const string &, const string &);
bool (*bf)(const string &, const string &);
//bf为函数的指针
//函数的括号必不可少 如果没有则返回一个类型为bool的指针。
bf = compareLength;
bf = &comparelength;
bf("hello", "world");
*bf("hello", "world");
//以上都是等价的
void ff(double) {}
void ff(int) {}
void (*pf)(int) = ff;
void (*lf)(double) = ff;
函数指针形参
void useBigger(const string& s1, const string& s2, bool pf(const string&, const string&));
void useBigger(const string& s1, const string& s2, bool (*pf)(const string&, const string&));
useBigger("hello", "world", lengthCompare);
//不包含的两个类实现函数的调用
返回函数类型的指针。因为不允许使用拷贝构造。