什么是初始化列表
初始化列表是一种C++初始化列表,有初始化阶段和计算阶段两个阶段。与其他函数不同,构造函数除了有名字,参数列表和函数体之外,还可以有初始化列表,初始化列表以冒号开头,后跟一系列以逗号分隔的初始化字段。从概念上来讲,构造函数的执行可以分成两个阶段,初始化阶段和计算阶段,初始化阶段先于计算阶段。
在构造函数中对成员的操作是赋初值不能称他为初始化。因为初始化只能进行一次,而构造函数体内可以给成员多次赋值。初始化列表的注意事项
1)每个成员在初始化列表中只能出现一次
2)初始化列表只能初始化类内的数据成员,并不能指定这些成员的初始化顺序,类内的数据成员的定义顺序就是初始化列表中的初始化顺序。
3)尽量避免使用成员初始化成员,成员的初始化顺序最好和成员定义顺序一致。
4)类内出现以下成员一定要放在初始化列表的位置进行初始化引用成员变量
const成员变量
类的类型成员( 该类有非缺省的构造函数)
代码样式:(以日期类为例)
class Date{
public:
Date(int year,int month,int day)
:_year(year)
,_month(month)
,_day(day)
{}
private:
int _year;
int _month;
int _day;
};