別のクラスからメンバーへのポインタ関数を呼び出すにはどうすればよいですか?

ローランソルト

私には2つのクラスがButtonありGameます。GameクラスにはButton *タイプのメンバーが含まれ、ButtonクラスにはGameクラスのメンバー関数へのポインターが含まれます。

class Game{
    public:
        Button* button1;

        void init();
        void tick();

        void wantetEvent();
};

class Button{
    public:
        void (Game::*click)();
};

Gameclickinit関数で関数ポインタを定義します

void Game::init(){
    button1 = new Button;
    button1->click = &Game::wantetEvent;
}

tick機能私は呼びたいclickの機能をbutton1これが私がこれまでに試したことです:

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

私が試したものは他にもたくさんありますが、それらはこれらの例よりも有望ではありませんでした。問題は、コンパイラ'click' was not declared in this scopeが最初の例と'click' is not a member of 'Game'2番目の例でそれ教えてくれることです。ポインターの観点から、別のクラスにある関数にアクセスしようとしている問題はありますか?または、そのような方法で関数を呼び出すことができる解決策はありますか?

Jarod42

それを呼び出すにはインスタンスが必要です:

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

デモ

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

クラスのメンバーである関数を別の関数から呼び出すにはどうすればよいですか?

分類Dev

関数ポインタを介してクラスメンバー関数を再帰的に呼び出すにはどうすればよいですか?

分類Dev

メンバー関数の最後でデストラクタの呼び出しをバイパスするにはどうすればよいですか?

分類Dev

別のコンポーネントからミックスイン関数を呼び出すにはどうすればよいですか?

分類Dev

関数ポインタ(コールバック)を渡して、その型を知らずに呼び出すにはどうすればよいですか?

分類Dev

React.jsの別のクラスコンポーネントからメソッドを呼び出すにはどうすればよいですか?

分類Dev

C#でそのメンバー関数にアクセスしながら、1つのクラスのコンストラクターを呼び出さないようにするにはどうすればよいですか?

分類Dev

デストラクタからconstメンバー関数を呼び出すにはどうすればよいですか?

分類Dev

クラスのメンバー変数よりも早くコンストラクターを呼び出すにはどうすればよいですか?

分類Dev

Lua C API関数がクラスメンバーとして呼び出されたのか、それともテーブルから関数として呼び出されたのかを判断するにはどうすればよいですか?

分類Dev

(C ++初心者)これらのクラス関数をメインに呼び出すにはどうすればよいですか?

分類Dev

Pythonでインポートされた別の関数からglobals()を呼び出すにはどうすればよいですか?

分類Dev

Pythonでインポートされた別の関数からglobals()を呼び出すにはどうすればよいですか?

分類Dev

Cのパラメーターとして、任意の数のパラメーターを持つ関数へのポインターを受け入れて呼び出すにはどうすればよいですか?

分類Dev

std :: forwardを使用せずにメンバー変数のmoveコンストラクターを呼び出すにはどうすればよいですか?

分類Dev

メンバー変数のデフォルト以外のコンストラクターを呼び出すにはどうすればよいですか?

分類Dev

オブジェクトから呼び出されたバインドされたメンバー関数のコンテキストのタイプを示すにはどうすればよいですか?

分類Dev

クラスメソッドで別のクラスインスタンスを呼び出すにはどうすればよいですか?

分類Dev

Javaで、オーバーライドするクラスのインスタンスからオーバーライドされるクラスのメソッドを呼び出すにはどうすればよいですか?

分類Dev

派生クラスインスタンスから親クラスのオーバーロードされた関数を呼び出すにはどうすればよいですか?

分類Dev

どのクラスかを知らずにC ++メンバー関数ポインタを呼び出す

分類Dev

メインから別のクラス内のメソッドを呼び出すにはどうすればよいですか?

分類Dev

JMenuItemを使用してメインメニュークラスに別のクラスを呼び出すにはどうすればよいですか?

分類Dev

イベントリスナーのステートメント内から関数を呼び出すにはどうすればよいですか?

分類Dev

クラスの新しいインスタンスを作成せずに、別のクラスから非静的関数を呼び出すにはどうすればよいですか?--React Native Router Flux

分類Dev

メンバー関数へのポインターを返すメンバー関数を作成するにはどうすればよいですか?

分類Dev

C ++の静的スレッドエントリポイント関数から他の関数を呼び出すにはどうすればよいですか?

分類Dev

jsコンストラクター関数を呼び出すにはどうすればよいですか?

分類Dev

Laravel 5.2で別のコントローラーからコントローラー関数を呼び出すにはどうすればよいですか?

Related 関連記事

  1. 1

    クラスのメンバーである関数を別の関数から呼び出すにはどうすればよいですか?

  2. 2

    関数ポインタを介してクラスメンバー関数を再帰的に呼び出すにはどうすればよいですか?

  3. 3

    メンバー関数の最後でデストラクタの呼び出しをバイパスするにはどうすればよいですか?

  4. 4

    別のコンポーネントからミックスイン関数を呼び出すにはどうすればよいですか?

  5. 5

    関数ポインタ(コールバック)を渡して、その型を知らずに呼び出すにはどうすればよいですか?

  6. 6

    React.jsの別のクラスコンポーネントからメソッドを呼び出すにはどうすればよいですか?

  7. 7

    C#でそのメンバー関数にアクセスしながら、1つのクラスのコンストラクターを呼び出さないようにするにはどうすればよいですか?

  8. 8

    デストラクタからconstメンバー関数を呼び出すにはどうすればよいですか?

  9. 9

    クラスのメンバー変数よりも早くコンストラクターを呼び出すにはどうすればよいですか?

  10. 10

    Lua C API関数がクラスメンバーとして呼び出されたのか、それともテーブルから関数として呼び出されたのかを判断するにはどうすればよいですか?

  11. 11

    (C ++初心者)これらのクラス関数をメインに呼び出すにはどうすればよいですか?

  12. 12

    Pythonでインポートされた別の関数からglobals()を呼び出すにはどうすればよいですか?

  13. 13

    Pythonでインポートされた別の関数からglobals()を呼び出すにはどうすればよいですか?

  14. 14

    Cのパラメーターとして、任意の数のパラメーターを持つ関数へのポインターを受け入れて呼び出すにはどうすればよいですか?

  15. 15

    std :: forwardを使用せずにメンバー変数のmoveコンストラクターを呼び出すにはどうすればよいですか?

  16. 16

    メンバー変数のデフォルト以外のコンストラクターを呼び出すにはどうすればよいですか?

  17. 17

    オブジェクトから呼び出されたバインドされたメンバー関数のコンテキストのタイプを示すにはどうすればよいですか?

  18. 18

    クラスメソッドで別のクラスインスタンスを呼び出すにはどうすればよいですか?

  19. 19

    Javaで、オーバーライドするクラスのインスタンスからオーバーライドされるクラスのメソッドを呼び出すにはどうすればよいですか?

  20. 20

    派生クラスインスタンスから親クラスのオーバーロードされた関数を呼び出すにはどうすればよいですか?

  21. 21

    どのクラスかを知らずにC ++メンバー関数ポインタを呼び出す

  22. 22

    メインから別のクラス内のメソッドを呼び出すにはどうすればよいですか?

  23. 23

    JMenuItemを使用してメインメニュークラスに別のクラスを呼び出すにはどうすればよいですか?

  24. 24

    イベントリスナーのステートメント内から関数を呼び出すにはどうすればよいですか?

  25. 25

    クラスの新しいインスタンスを作成せずに、別のクラスから非静的関数を呼び出すにはどうすればよいですか?--React Native Router Flux

  26. 26

    メンバー関数へのポインターを返すメンバー関数を作成するにはどうすればよいですか?

  27. 27

    C ++の静的スレッドエントリポイント関数から他の関数を呼び出すにはどうすればよいですか?

  28. 28

    jsコンストラクター関数を呼び出すにはどうすればよいですか?

  29. 29

    Laravel 5.2で別のコントローラーからコントローラー関数を呼び出すにはどうすればよいですか?

ホットタグ

アーカイブ