我有两个类。
我需要在A的运行函数中创建一个指向func()的指针。我得到了编译错误,提示mB没有对应一个带有1个参数的函数。
请帮忙解决。
class B {
public:
int func(int i);
};
class A {
public:
typedef int (B::*fPtr)(int);
void run();
B* mB;
};
void A::run() {
// create a pointer
fPtr p = &(B::func);
// invoke the function
mB->*p(2); <------- Compilation Error
}
我需要在A的运行函数中创建一个指向func()的指针。我得到了编译错误,提示mB没有对应一个带有1个参数的函数。
请帮忙解决。
std/boost::function
中。 - Benjamin Lindleystd::function<int(B*,int)> fun = &B::func
。然后调用将会更加简单明了,即fun(mB,2);
。 - user406009