1.初始化列表
在创建对象时,编译器通过调用构造函数给对象中各个成员变量一个合适的初始值。但是构造函数中的语句只能将其称为赋初值,而不能称为初始化,因为初始化只能初始化一次,而构造函数体内可以多次赋值。
初始化列表:以一个冒号开始,用逗号分隔的数据成员列表,每个成员变量后面跟一个放在括号中的初始值或表达式。
初始化列表特性
1.每个成员变量在初始化列表中只能出现一次。
2.类中如果有以下成员,必须在初始化列表位置进行初始化(引用成员变量、const成员变量、没有默认构造函数的自定义类型成员)
3.尽量使用初始化列表初始化。
4.成员变量在类中的声明次序就是其在初始化列表中的初始化顺序
2.explicit关键字
构造函数不仅可以构造与初始化对象,对于单个参数的构造函数,还有类型转换的作用