构造函数的初始化列表
之前的构造函数只是在创建对象的时候,赋给成员变量初值。
class Date
{
public :
Date(int year = 1900, int month = 1, int day = 1)
{
_year = year;
_month = month;
_day = day;
}
...
}
想要真正直接初始化可以使用初始化列表:
class Date
{
public :
Date(int year = 1900, int month = 1, int day = 1)
:_year(year)
,_month(month)
,_day(day)
{
}
...
}
注意:
- 每个成员变量在初始化列表中只能出现一次(初始化只能初始化一次)
- 以下成员必须要在初始化列表中进行初始化:
- const成员
- 引用成员
- 没有默认构造函数的自定义类型成员(默认构造函数是指,无参或全缺省参数的构造函数)
- 成员变量在类中声明次序就是其在初始化列表中的初始化顺序,与初始化列表顺序无关
class A
{
public:
A(int a)
:_a1(a)
,_a2(_a1)
{
}
void <