11月 212009
 

用过函数指针的人都有可能遇到这样的一个问题:你用typedef声明了一个函数指针,作为某个函数的参数,但当你用类的成员函数传进去的时候,却发现编译不通过。比如像下面的代码:

typedef void Fun1(int a, int b)

class A

{

public:

        void f(int a, int b){}

}

void Fun2(Fun1 pf){}

像上面的代码,如果你调用的时候用Fun2(A::f)这样的话是编译出错的。也许你会说,f又不是静态的,当然不行,声明一个A的对象a,然后Fun2([……]

继续阅读