私はしばらくの間C++から離れていました。定義されたクラスのプライベートメンバー変数(存在する場合)のこの2つのデフォルトコンストラクタの初期化の違いを判断しようとしています。クラス定義はヘッダファイルにあり、実装は別のファイルにあります。すべてのプライベートメンバー変数を "0"または意味のない値に初期化する必要があります。コンストラクタでのプライベートメンバー初期化の違い(C++)
注:
intデータは、[MAX_SIZE]固定サイズのコンパイル時の配列です。 int used:配列のインデックストラッカーです。
一般的に、私は次のようにメンバーを初期化することに慣れてる、スピーキング:
// Default Constructor
IntSet::IntSet()
{
data[MAX_SIZE-1] = {0}
used = 0;
}
私はいくつかのレガシーコードをコーミングと完全に異なる構文を見つけることだ:
// Default Constructor
IntSet::IntSet() : used(0)
{
data[MAX_SIZE-1] = {0};
}
があります最終結果の違いは?
2番目のスニペットと同じように[初期化リスト](http://en.cppreference.com/w/cpp/language/initializer_list)を推奨します。 VLAはC++では使用できません。 – Ron
ここではVLAは使用されていません。すべての作業は、データの最後の値を0に設定することです。 – user4581301