Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
C++11 はこれを導入しました:
struct MyClass { int foo = 0; //* };
今まで何も考えずに使っていたのですが、次のことが気になりました。
この初期化は、この特定の行 (コード内) で実際の初期化を実行/実行していますか?それとも、オブジェクトが実際に構築されたときに、後で//*何かを実行/実行するだけの単なる便利な表記法ですか?
//*
「後で」と「この特定の行で」の意味がわかりませんが、上記は次と同等です。
struct MyClass { MyClass() : foo(0) { } };
したがって、あなたの質問を正しく理解できれば、答えは「はい、オブジェクトが実際に構築された場合のみ」です。