我需要有一个指向类方法的指针,并使用它来调用此方法。
在下面的代码段中,我试图将调用成员指针存储在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)()
。