【C++ Primer 第7章】顺序容器构造函数初始化方式、成员初始化顺序

构造函数初始化方式

构造函数体内赋值初始化

如果没有在构造函数初始值列表中显示初始化成员,则该成员将在构造函数体之前执行默认初始化

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) {}  //正确

  

成员初始化顺序

猜你喜欢

转载自www.cnblogs.com/sunbines/p/9269489.html
今日推荐