1、初始化成员列表只能用于类的构造函数中
2、初始化成员列表中类成员的顺序并不是类初始化时的顺序,类初始化成员变量的顺序是根据成员变量定义的顺序来的。
3、类中初始化的顺序:
(1)虚基类的构造函数(多个虚基类按照继承的顺序执行构造函数)
(2)基类的构造函数(多个基类按照继承的顺序执行构造函数)
(3)类类型的成员对象的构造函数(按照初始化的顺序)
(4)派生类自己的构造函数
4、用初始化列表会快一些?
(1)初始化列表是在分配内存空间时进行初始化,而在函数体中初始化是在分配内存空间后进行初始化。
(2)对于类类型的成员变量,用初始化列表只需要执行一次有参构造函数或者拷贝构造,而在函数体中初始化需要执行一次默认构造、一次赋值操作(会产生临时变量)或者多一次有参构造(取决于构造输入的是类变量函数用与初始化类的参数)。
5、必须使用成员初始化列表的四种情况
(1)当初始化一个引用成员的时候;
(2)当初始化一个常量的时候;
(3)当调用一个基类的构造函数,且它拥有一组参数的时候;
(4)当调用一个成员类的构造函数,且它拥有一组参数的时候;