6

オブジェクトの 2 つの初期化に違いはありますか。

Object obj(constructor_arguments);

また

Object obj = Object(constructor_arguments);

new2 番目の初期化は、演算子を使用したポインターを意図したものではないことに注意してください。非ヒープ変数を意図しています。

GCC では、コンパイルと正常に動作します。実際に違いがあるのか​​、それとも両方のステートメントが意味的に同じなのか疑問に思っています。

4

1 に答える 1

11

はいあります。1 つ目は直接初期化の構文で、2 つ目はコピー初期化です。

理論的には、2 番目のものはコピー コンストラクターを呼び出しますが、これは最適化の対象となります。

于 2013-05-28T20:20:12.727 に答える