具有成员初始化列表的显式复制构造函数中的空值

时间:2017-10-16 17:38:00

标签: c++

考虑这个拷贝构造函数:

myclass::myclass(const myclass& rhs):
  _a(rhs._a), _b() {
}

假设_b定义为:

int _b[100];

_b初始化的内容是什么?在列表中写_b()与不包括_b之间有什么区别?

1 个答案:

答案 0 :(得分:4)

_b()确保数组_bzero-initialized,即其所有元素都为零。

如果未在构造函数初始值设定项列表中包含_b(),则_b将不会被初始化(从技术上讲,它被称为default-initialized)并且可能包含任何内容。使用它未初始化会导致未定义的行为。