C++ 如何从另一个类调用指向成员函数的指针?

C++ 如何从另一个类调用指向成员函数的指针?,c++,class,function-pointers,member-function-pointers,C++,Class,Function Pointers,Member Function Pointers,我有两门课,按钮和游戏。 游戏类包含Button*类型的成员,Button类包含指向游戏类中成员函数的指针 class Game{ public: Button* button1; void init(); void tick(); void wantetEvent(); }; class Button{ public: void (Game::*click)(); }; 我现在在游戏的ini

我有两门课,
按钮
游戏
。 游戏类包含Button*类型的成员,Button类包含指向游戏类中成员函数的指针

class Game{
    public:
        Button* button1;

        void init();
        void tick();

        void wantetEvent();
};

class Button{
    public:
        void (Game::*click)();
};
我现在在游戏的
init
函数中定义
click
函数指针

void Game::init(){
    button1 = new Button;
    button1->click = &Game::wantetEvent;
}
勾选
函数中,我想调用
点击
按钮1的
函数。以下是我迄今为止所尝试的:

void Game::tick(){
    (button1->*click)();
    (button1->*Game::click)();
}
我还尝试了很多其他的方法,但是没有这些例子那么有希望。
问题是编译器告诉我,在第一个示例中,
'click'未在此范围内声明,在第二个示例中,
'click'不是“游戏”
的成员。从指针的角度来看,我试图访问另一个类中的函数是否存在问题?或者是否有某种解决方案允许我以这种方式调用函数?

您需要一个实例来调用它:

void Game::tick(){
    (this->*(button1->click))();
}

您需要一个实例来调用它:

void Game::tick(){
    (this->*(button1->click))();
}

似乎(按钮1->*点击)必须工作。我在这里看了一个例子。应该是
(此->*(按钮1->单击))()
<代码>(按钮1->*点击)(
只有当
点击
游戏::init
范围内的名称时才有意义,但它不是。提示:“来自另一个类”与您的问题完全无关。@Аааааааааааааааааа。我在这里看了一个例子。应该是
(此->*(按钮1->单击))()
<代码>(按钮1->*点击)(
只有当
点击
游戏::初始化
范围内的一个名称时才有意义,但它不是。提示:“来自另一个类”与您的问题完全无关。@Аааааааааааааааа1072?意思是,当
单击
不在范围内时,您可以添加一些文字说明原因吗?意思是说,
单击时
不在范围内?