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

Empty value in explicit copy constructor with member initialization list

本文关键字:复制 构造函数 空值 成员 初始化 列表      更新时间:2023-10-16

请考虑以下复制构造函数:

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

假设_b定义为:

int _b[100];

_b初始化为什么?编写_b()与根本不在列表中包含_b有什么区别?

>_b()确保数组_b初始化为,即其所有元素都将为零。

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