4

C++ で変数を初期化する方法が 2 つあるのはなぜですか?

最初の方法はC-type initialization、変数を定義した場所で変数に値を割り当てる場所です。

int a = 0;

別の方法としてconstructor initialization、初期値を括弧 () で囲みます。

int a(0);

私の質問は、C++ の作成者が変数を初期化する新しい方法を導入することを余儀なくされた理由は何だったのかということです。Cスタイルの初期化は仕事をしていましたが。

4

3 に答える 3

-4

最初の C 型初期化と呼ばれるものを使用すると、変数は 2 回書き込まれます。最初はデフォルト値、2 回目は代入です。2 番目の場合は、指定された値に直接設定されます。現代のコンパイラはプリミティブ型に対してこれを最適化すると思いますが、オブジェクトに対してはかなりの違いが生じる可能性があります。

于 2015-09-25T09:21:19.243 に答える