我已經離開C++一段時間了,我試圖確定定義類的私有成員變量(如果有的話)的這兩個默認構造函數初始化的區別。類定義位於頭文件中,而實現位於單獨的文件中。所有私有成員變量都需要初始化爲「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};
}
有最終結果的差異?
在你的第二個片段中使用[初始化程序列表](http://en.cppreference.com/w/cpp/language/initializer_list)。在C++中不允許使用VLA。 – Ron
這裏沒有使用VLA。所做的就是將'data'的最後一個值設置爲0. – user4581301