0

我想使用它的接口在子类上调用一些方法,但我想使用指向接口方法的指针。

像这样的东西:

#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;
}

你知道如何解决这个问题吗?

4

1 回答 1

3

调用应该是:

(a->*func)()

(这将成员函数指针绑定到a然后调用成员函数。)

否则,您的代码是正确的。

于 2012-07-24T21:45:55.703 回答