1

私は C++ でいくつかのコーディングを行っていますが、言語に同様のものが存在する場合、いつものようにいくつかの「考え」があります...

私は今、オブジェクトがパラメーターとして渡されることに疑問を持っています。

私がいつもしていることは、新しいオブジェクトを作成し、そのインスタンスを次のようにポインターとして渡すことです。

mObject* obj1 = new mObject();
obj1->callback(the_callback_function);

function_that_needs_obj(obj1); // (or the reference, if I didn't instantiated a pointer).

これで問題ありません。問題ありません。しかし、Java を使用していたので、次のようにしていました。

function_that_needs_obj(new mObject(){
    public void onCallback(){
        // Custom code enters here....
    }
});

このようなC++での使用の「並べ替え」はありますか? 私が作成する必要がある各コールバックのために:1つExtended class、または1つfunctionNamedVeryLongBecauseThereAreManyをコードのTOPに記述する必要があり、そのようなものはコードを多く「混乱」させます...

またthis、FUNCTION コールバックを割り当てると、すべてのオブジェクト変数にアクセスできなくなります...

4

2 に答える 2

4

コンパイラが c++11 をサポートしている場合、次のようにラムダ式を使用できます。

function_that_needs_obj([]()
                        {
                           // Custom code enters here....
                        });

C++11 のラムダ式とは何ですか?

于 2013-05-08T03:52:28.013 に答える
0

ブーストラムダで必要なものを見つけることができます!

于 2013-05-08T04:53:44.063 に答える