用C ++中的指针调用对象方法

时间:2019-01-26 18:14:25

标签: c++ pointers methods

我需要有一个指向类方法的指针,并使用它来调用此方法。

在下面的代码段中,我试图将调用成员指针存储在Button :: onKeyDown成员中,以便以后调用它。但是,我找不到正确的语法。

P.S。我不想使用模板。

class BaseCallback
{
public:
    virtual void onEvent() { cout << "BaseCallback::onEvent >>" << endl; };
};

typedef void (BaseCallback::*Callback)();

class Button
{
public:
    Callback onKeyDown = nullptr;
};

int main()
{
    BaseCallback cb;
    Button btn;

    btn.onKeyDown = &BaseCallback::onEvent;

    (btn.*onKeyDown)(); // <<= This is wrong. What is the proper way to do it?
    // ... 


正确的答案是(cb.*btn.onKeyDown)()

0 个答案:

没有答案