首先上一个例子
1 class Example 2 { 3 public: 4 int x; 5 int y; 6 //函数初始化列表 7 Example ():x(a),y(b){} 8 //函数内部赋值 9 Example (){this->x=a;this->y=b;}
以下四种情况下需要使用初始化成员列表:
一,需要初始化的数据成员是对象的情况;
派生类必须在初始化列表中调用基类的构造函数。
二,需要初始化const修饰的类成员;
三,需要初始化引用成员数据;
const对象或引用只能初始化不能赋值,构造函数的函数体内只能赋值而不是初始化,因此初始化列表为const和引用的唯一机会。
四,类成员没有默认构造函数类型