【何时必须使用member initialization list?】
1、初始化一个reference member时。
reference member必须在 initialization list中初始化。
2、初始化一个const member时。
const member必须在 initialization list中初始化。
3、当调用一个base class的constructor,而它拥有一组参数时。
必须在initialization list中调用父类的多参构造函数。
4、当调用一个member class的consturctor,而它拥有一组参数时。
必须在initialization list中调用父类的多参构造函数。
注意:初始化列表的调用次序由成员的内存结构顺序决定,而不是初始化列表中的顺序决定。