函数指针
这两天一直在重新翻看C++的书,发现对很多东西有了新的认识,或者说是懂了很多知识。
先来说说函数指针吧,函数指针,顾名思义就是指向函数的指针,而不是指向函数对象的指针。
1.形式就像,int (*pf)(const int &,const int &);这就是将pf声明为返回值类型是int的,参数是const int&,const int&类型的。需要注意的就是*pf两端的括号是必须的,不然编译器会误以为这是一个返回类型是int*,参数是两个const int &的函数。
2.使用typedef来简化函数指针的定义。typedef int (*pnewf)(const int &,const int &);书上说的很懵懂,其实就是定义了一个pf的类型,该类型是返回值为int,参数为两个const int &的函数。我们可以这样pnewf fun来定义新的变量fun。
3.函数指针的初始化。在引用函数名但又没有调用该函数的时候,函数名将被自动解释为指向函数的指针。假设有函数
int fun(const int &,const int &),那么我们就可以这样 pnewf p1 = fun 来赋值,也可以pnewf p2 = 0来初始化。
4.通过指针调用函数与直接用函数来使用是一样的。比如:
pnewf p1 = fun;
p1(1,3)与fun(1,3)一样。