0

C++11 はこれを導入しました:

struct MyClass {
  int foo = 0; //*
};

今まで何も考えずに使っていたのですが、次のことが気になりました。

この初期化は、この特定の行 (コード内) で実際の初期化を実行/実行していますか?それとも、オブジェクトが実際に構築されたときに、後で//*何かを実行/実行するだけの単なる便利な表記法ですか?

4

2 に答える 2

8

「後で」と「この特定の行で」の意味がわかりませんが、上記は次と同等です。

struct MyClass {
    MyClass() : foo(0) { }
};

したがって、あなたの質問を正しく理解できれば、答えは「はい、オブジェクトが実際に構築された場合のみ」です。

于 2013-05-04T12:06:34.700 に答える