我已经离开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