哪几种情况必须用到初始化成员列表
c++
(1)类的成员是常量成员初始化;
(2)类的成员是对象成员初始化,而该对象没有无参构造函数。
当调用一个基类的构造函数,而构造函数拥有一组参数时
当调用一个成员类的构造函数,而他拥有一组参数
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 
 | class B{
 protected:
 int i;
 int j;
 public:
 B(int x,int y)
 {
 i=x;
 j=y;
 }
 };
 
 class A
 {
 private:
 int a;
 B b;
 public:
 A(B b1,int a1)
 {
 b=b1;
 a=a1;
 }
 };
 int main()
 {
 return 0;
 }
 
 | 
通俗的就是,如果基类没有构造函数,派生类的初始化列表必须初始化基类,必须用基类的构造函数构造一个。
  因为派生类继承基类时,会先构造基类,然后在构造派生类,如果基类不是默认的构造函数,那么就不知道基类到底咋构造,因此……
(3)类的成员常变量时。
(4)类的成员是引用时。
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 
 | class B{
 protected:
 const int i;
 int &j;
 public:
 
 
 
 
 
 B(int x,int &y):i(x),j(y)
 {
 }
 };
 
 | 
原文地址:https://www.cnblogs.com/bigbigtree/p/3540984.html