构造函数初始化方式
构造函数体内赋值初始化
如果没有在构造函数初始值列表中显示初始化成员,则该成员将在构造函数体之前执行默认初始化
Sales_data::Sales_data(const string *s, unsigned cnt, double price) { bookNo = s; units_sold = cnt; revenue = cnt * price; }
构造函数初始值列表初始化
Sales_data::Sales_data(const string *s, unsigned cnt, double price): bookNo(s), units_sold(vcnt), revenue(cnt * price) {}
举例说明:
class ConstRef { public: ConstRef(int il); private: int i; const int ci; int &ri; }; ConstRef::ContRef(int il) { i = il; //正确 ci = il; //错误:不能给const赋值 ri = il; //错误:ri没被初始化 } ConstRef::ContRef(int il): i(il), ci(il), ri(il) {} //正确
成员初始化顺序