0

クラス(Dialog::handler)のメンバーへのポインタを(Dialog::r​​enderのスコープ内の)メソッドから外部メソッド(Button::OnClick)に渡そうとしています。

以下に小さな例を示します。

        class Button
        {
        public:
            void OnClick(void (*handler)())
            {
                handler();
            }
        };

        class Dialog
        {
        public:
            void handler()
            {
                //do stuff
            }
            void render()
            {
                auto button = new Button;
                //Source of problem
                button->OnClick(this->*handler);
            }
        };

しかし、コンパイラはエラーを示しています:

非標準の構文; 「&」を使用してメンバーへのポインタを作成します

また、次のような他の組み合わせも試します。

  • this->ハンドラ。
  • &this.handler.
  • this.* ハンドラ。

しかし、明らかに彼らは失敗しました。

4

1 に答える 1