考虑这个拷贝构造函数:
myclass::myclass(const myclass& rhs):
_a(rhs._a), _b() {
}
假设_b定义为:
int _b[100];
_b
初始化的内容是什么?在列表中写_b()
与不包括_b
之间有什么区别?
答案 0 :(得分:4)
_b()
确保数组_b
为zero-initialized,即其所有元素都为零。
如果未在构造函数初始值设定项列表中包含_b()
,则_b
将不会被初始化(从技术上讲,它被称为default-initialized)并且可能包含任何内容。使用它未初始化会导致未定义的行为。