|
构造函数可以选择具有成员初始化表达式列表,该列表会在构造函数主体运行之前初始化类成员。 (成员初始化表达式列表与类型为 std::initializer_list<T> 的初始化表达式列表不同。)
首选成员初始化表达式列表,而不是在构造函数主体中赋值。 成员初始化表达式列表直接初始化成员。 以下示例演示了成员初始化表达式列表,该列表由冒号后的所有 identifier(argument) 表达式组成:
Box(int width, int length, int height)
: m_width(width), m_length(length), m_height(height)
{}
标识符必须引用类成员;它使用参数的值进行初始化。 参数可以是构造函数参数之一、函数调用或 std::initializer_list<T>。
const 成员和引用类型的成员必须在成员初始化表达式列表中进行初始化。
若要确保在派生构造函数运行之前完全初始化基类,请调用初始化表达式列表中的任何参数化基类构造函数。
|
|