指向成员函数指针

普通函数指针和指向成员函数指针

荒凉一梦 提交于 2019-12-06 03:23:23
函数指针 最近在研究STL的函数适配器时,才发现自己对函数指针其实也不太熟悉,所以决定写下这篇文章记录一下,以便将来又忘了的时候可以看看,说不定有人会因此而受益(虽然我也知道好象不太可能有人来看我的Blog)。 以下是最基本的函数指针的用法(指向外部函数): #include using namespace std; void fun1(); void fun2(); int main() { void (*pF)(); pF = &fun1; (*pF)(); pF = &fun2; (*pF)(); system ("pause"); return 0; } void fun1() { cout << "fun1" << endl; } void fun2() { cout << "fun2" << endl; } 虽然说上面一段代码中的(*pF)()用pF()代替在大部分编译器上(至少我没遇到过不能通过编译的编译器)可以通过编译运行得很好并且看上去优雅多了,但是请记住(*pF)()才是真正符合标准的调用方法。BTW如果你觉得void (*pF)();难看得很可以这样写将它替换成typedef void (* Fun)(); Fun pF; 好了,接下来我们去看看指向类成员函数的函数指针: #include using namespace std; class Test {