有这样一个简单的玩具类:
class c
{
int i;
public:
c() {}
void f(int) {}
}obj;
void (*pf)(int);
我想将pf指向类c的成员函数f,应该怎样操作?
pf=obj.f; 或者是:pf=&c::f; 都不能通过编译。
try
void (c::*pf)(int);
....
B.S.给了你一个答案,就你的例子而言,可以这样:
//...
class c
{
int i;
public:
c() {}
void f(int) {}
}obj;
//...
typedef void (*pf)(void*,int);
void main(){
pf ptrfunc=pf(&obj.f);
(*ptrfunc)(&obj,1);
}