我想使用它的接口在子类上调用一些方法,但是我想使用指向接口方法的指针。
这样的事情:
#include <iostream>
using namespace std;
class IA
{
public:
virtual void f() = 0;
};
class A : public IA
{
public:
virtual void f()
{
cout<<"A::f()"<<endl;
}
};
int main()
{
typedef void (IA::*Func)();
Func func;
func = &IA::f;
IA *a = new A();
a.*(func);
delete a;
return 0;
}
你知道如何解决这个问题吗?
答案 0 :(得分:3)
调用应该是:
(a->*func)()
(这会将成员函数指针绑定到a
,然后调用成员函数。)
否则,您的代码是正确的。