後で呼び出すことができるように関数を渡すことはできますか?

TPRammus

関数を呼び出す1つのメソッドを持つオブジェクトが必要です(ただし、オブジェクトごとに呼び出す関数が異なる必要があります)。例を示して、私が何を意味するのかをお見せしようと思います。

class Human
{
    public:
        void setMyFunction(void func);  // specify which function to call
        void callMyFunction();  // Call the specified function
};

void Human::setMyFunction(void func)    // ''
{
    myFunction = func;
}

void Human::callMyFunction()    // ''
{
    myFunction();
}

void someRandomFunction()   // A random function
{
    // Some random code
}

int main()
{
    Human Lisa;     // Create Object
    Lisa.setMyFunction();   // Set the function for that object
    Lisa.callMyFunction();  // Call the function specified earlier
}

このコードは(明らかに)機能しませんが、私が達成しようとしていることを理解していただければ幸いです。

MfG、TPRammus

Jarod42

を使用する場合がありますstd::function

#include <functional>

class Human
{
    std::function<void()> mFunc;
public:
    void setMyFunction(std::function<void()> func) { mFunc = func; }
    void callMyFunction() { if (mFunc) mFunc(); }
};

デモ

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

perlのようにPythonの上部にあるmain関数を呼び出すことはできますか?

分類Dev

関数呼び出し後にパイプ演算子で return を呼び出すことはできますか?

分類Dev

この名前のない関数をどのように呼び出すことができますか?

分類Dev

JS関数を呼び出すことはできますか?

分類Dev

cakephp3で動作するようにjquery関数を呼び出すことはできません

分類Dev

関数を作成することはできますが、呼び出すことができません

分類Dev

PHPでfunc(a)(b)(c)のように呼び出すことができる関数を作成するにはどうすればよいですか?

分類Dev

この再帰関数を修正して、呼び出しが深くならないようにすることはできますか?

分類Dev

.attrの後に関数を呼び出すことはできません

分類Dev

setTimeoutで関数を事前定義して、角かっこで呼び出さないようにすることはできますか?

分類Dev

AngularJS:Promiseは別の関数を「呼び出す」ことができますか?

分類Dev

aws lambdaはmatlab関数を呼び出すことができますか?

分類Dev

WebJobのJobHost.CallAsyncを介して呼び出すことができるF#で関数を宣言するにはどうすればよいですか?

分類Dev

終了する前に複数回呼び出すことができるタイマー関数を作成するにはどうすればよいですか?

分類Dev

関数が呼び出されていないことをどのようにテストできますか?

分類Dev

次の関数が呼び出される前に、関数が完了するのをどのように待つことができますか?

分類Dev

DBeaverから呼び出すことができるPostgreSQL関数を作成するにはどうすればよいですか?

分類Dev

DBeaverから呼び出すことができるPostgreSQL関数を作成するにはどうすればよいですか?

分類Dev

Express jsの任意のビューから呼び出すことができる関数を宣言するにはどうすればよいですか?

分類Dev

C ++では、関数の呼び出し元は引数が変更されないようにすることができますか?

分類Dev

関数がそれ自体を呼び出すことができるのはどうしてですか?

分類Dev

jqueryはどのようにして別の関数の「終わり」で関数を呼び出すことができますか?

分類Dev

定義する前に関数式を呼び出すことができるのはなぜですか?

分類Dev

定義する前に関数を呼び出すことができるのはなぜですか?

分類Dev

どのように私はJavaScriptで関数呼び出しを組み合わせることができますか?

分類Dev

このC関数を作成して、ユーザーが後で「free」を使用せずに呼び出すことができるようにするにはどうすればよいですか?

分類Dev

switchステートメントから呼び出すことができるように関数をどこに配置しますか?

分類Dev

関数はそれがどのように呼び出されたかを知ることができますか?

分類Dev

関数呼び出しを並べ替えることはできますか

Related 関連記事

  1. 1

    perlのようにPythonの上部にあるmain関数を呼び出すことはできますか?

  2. 2

    関数呼び出し後にパイプ演算子で return を呼び出すことはできますか?

  3. 3

    この名前のない関数をどのように呼び出すことができますか?

  4. 4

    JS関数を呼び出すことはできますか?

  5. 5

    cakephp3で動作するようにjquery関数を呼び出すことはできません

  6. 6

    関数を作成することはできますが、呼び出すことができません

  7. 7

    PHPでfunc(a)(b)(c)のように呼び出すことができる関数を作成するにはどうすればよいですか?

  8. 8

    この再帰関数を修正して、呼び出しが深くならないようにすることはできますか?

  9. 9

    .attrの後に関数を呼び出すことはできません

  10. 10

    setTimeoutで関数を事前定義して、角かっこで呼び出さないようにすることはできますか?

  11. 11

    AngularJS:Promiseは別の関数を「呼び出す」ことができますか?

  12. 12

    aws lambdaはmatlab関数を呼び出すことができますか?

  13. 13

    WebJobのJobHost.CallAsyncを介して呼び出すことができるF#で関数を宣言するにはどうすればよいですか?

  14. 14

    終了する前に複数回呼び出すことができるタイマー関数を作成するにはどうすればよいですか?

  15. 15

    関数が呼び出されていないことをどのようにテストできますか?

  16. 16

    次の関数が呼び出される前に、関数が完了するのをどのように待つことができますか?

  17. 17

    DBeaverから呼び出すことができるPostgreSQL関数を作成するにはどうすればよいですか?

  18. 18

    DBeaverから呼び出すことができるPostgreSQL関数を作成するにはどうすればよいですか?

  19. 19

    Express jsの任意のビューから呼び出すことができる関数を宣言するにはどうすればよいですか?

  20. 20

    C ++では、関数の呼び出し元は引数が変更されないようにすることができますか?

  21. 21

    関数がそれ自体を呼び出すことができるのはどうしてですか?

  22. 22

    jqueryはどのようにして別の関数の「終わり」で関数を呼び出すことができますか?

  23. 23

    定義する前に関数式を呼び出すことができるのはなぜですか?

  24. 24

    定義する前に関数を呼び出すことができるのはなぜですか?

  25. 25

    どのように私はJavaScriptで関数呼び出しを組み合わせることができますか?

  26. 26

    このC関数を作成して、ユーザーが後で「free」を使用せずに呼び出すことができるようにするにはどうすればよいですか?

  27. 27

    switchステートメントから呼び出すことができるように関数をどこに配置しますか?

  28. 28

    関数はそれがどのように呼び出されたかを知ることができますか?

  29. 29

    関数呼び出しを並べ替えることはできますか

ホットタグ

アーカイブ