版权声明:本文为博主原创文章,未经允许,不得转载!欢迎留言,允许附带链接转载! https://blog.csdn.net/Sophia_11/article/details/88370768
习题答案请参考:C++ Primer 第五版 第6章 6.7——函数指针习题答案
目录
6.7 函数指针
声明一个函数指针,只需要用指针替代函数名即可
如,有一个标胶string对象长度的函数为:
bool lengthCompare(const string &, const string &);
声明指向该函数的指针:
bool (*P)(const string &, const string &);
说明:
(1)指针代替函数名,这里*p指针代替lengthCompare
(2)指针*p的括号必不可少(这里是细节,注意!!)
使用函数指针
(1)把函数名作为一个值使用时,该函数自动地转换成指针
p = lengthCompare //p指向lengthCompare函数
p = &lengtCompare //等价的赋值语句,&是可选的
(2)可以直接使用指向函数的指针调用该函数
//三个方式都是调用lengthCompare
bool = p("hello", "goodbye")
bool = (*p)("hello", "goodbye")
bool = lengthCompare("hello", "goodbye")
返回指向函数的指针
函数不能返回整个函数,但是可以返回指向函数的指针,注意,必须是指针形式,并不能将函数类型转换成指针类型