3
デフォルト、値、ゼロの初期化の混乱
値とデフォルトとゼロの初期化について非常に混乱しています。特に、異なる標準C ++ 03とC ++ 11(およびC ++ 14)を採用する場合。 私はここで本当に良い答えを引用して拡張しようとしています値-/デフォルト-/ゼロ-初期化C ++ 98とC ++ 03誰かが記入するのを手伝ってくれるなら多くのユーザーを助けるので、それをより一般的にしますいつ何が起こるかについての概要を把握するためにギャップが必要でしたか? 一言で言えば例による完全な洞察: new演算子によって返されるメモリが初期化される場合もあれば、新しい型がPOD(単純な古いデータ)であるかどうか、またはPODメンバーを含み、を使用しているクラスであるかどうかに依存しない場合もあります。コンパイラーが生成したデフォルトのコンストラクター。 ではC ++ 1998:初期化の2種類があるゼロとデフォルトの初期化は、 C ++ 2003の初期化の3種類、値初期化を加えました。 C ++ 2011 / C ++ 2014のみリストの初期化は、添加し、そしてための規則値- / default- /ゼロ初期化は、ビットを変更しました。 仮定: struct A { int m; }; struct B { ~B(); int m; }; struct C { C() : m(){}; …