我想使用它的接口(interface)在子类上调用一些方法,但我想使用指向接口(interface)方法的指针。
像这样:
#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;
}
你知道怎么解决吗?
最佳答案
调用应该是:
(a->*func)()
(这将成员函数指针绑定(bind)到 a
,然后调用成员函数。)
否则,您的代码是正确的。
关于c++ - 通过指向基类函数的指针调用派生类函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11639788/