初始化列表
定义
初始化列表:以一个冒号开始,接着是一个以逗号分隔的数据成员列表,每个"成员变量"后面跟一个放在括号中的初始值或表达式。
实现及分析
- 这三类成员:引用,const,没有默认构造的自定义成员
class Date
{public:
Date(int year, int month, int day)//初始化列表:真正初始化的地方
_year=year;
_month=month;
_day=day;
private://声明的顺序
int _year;
int _month;
int _day;
};
2.在声明处给一个缺省值,不算初始化
class A
{
public:
int setI(int i)
{
_i = i;
}
//const修饰this指针: this指针指向的对象内容不变 [const只修饰成员函数]
int getI()const //const *this:const A* const
{
return _i;
}
private:
int _i=0;//c++11新的初始化方式:在成员变量声明使,给一个缺省值
//且声明的缺省值在无值可选的时候才会用
//仅限于非静态成员
};
特点
- 每个成员变量在初始化列表中只能出现一次(初始化只能初始化一次)
- 初始化列表中初始化顺序:按照声明顺序,并不是初始化列表中的书写顺序
- 如果自定义成员没有默认构造,自定义必须在初始化列表中显式初始化
好了,到这里就结束了,欢迎大家来评论!