30)构造函数的初始化列表

初始化你的类的成员变量,不能在定义那块给初始化,必须在  构造函数那里,或者在 初始化列表那里

就是  你想要 初始化 一个类的对象成员,你需要把他写在你的  初始化参数列表里面

类成员是对象  在初始化列表那里 初始化

类成员是常量,,在初始化列表那里初始化

1)如果  我们有一个类成员,他本身是一个类或者一个结构,而且这个成员它只有一个带参数的构造函数,没有默认的构造函数,这时要对这个类成员进行初始化,

  就必须调用这个类成员带参数的构造函数

  如果没有初始化列表,那么他将无法完成第一步,就会报错。

2)在一个类A中,有另一个类B,然后,我在A的构造函数中初始化B,没法写,比如:

 1 //我就是想用B的构造函数来初始化B的成员变量
 2 class A{
 3 
 4   private 5             B b1;
 6             B b2;
 7             int   a;
 8   public 9             A(B &b1,B &b2,int a)
10              {
11                this->a=a;
12                b1=b1;      //这个调用的是那个构造符函数(=),这个不是调用B的构造函数
13                b1(b1);  //这个是将b1看成一个函数了,这个不行,这个不是调用的B的构造函数,
14                
15               }
16 
17 
18 
19 
20 }                    

3)所以就有了  构造函数的初始化列表这个东西。

  

4)构造对象成员的顺序和初始化列表的顺序无关,而是和成员对象的定义顺序有关

    

  private            B b1;
             B b2;
             int   a;
5)还有这个里面的 a初始化 也可以这样:
1 public2         B(int a):a(103 {
4     //然后这个里面什么东西也没有,或者可以加别的东西,反正对变量的初始化,没有了
5 }
详细可以见:台式机的桌面:
  C:Documents and SettingsAdministrator桌面C++基础教程完整版视频2_C++基础day033_视频    第十一个视频
6)常量 初始化,也是在初始化列表中,初始化。
  就是  类中变量含有 const 型的变量,必须在初始化列表中初始化它
  

  
原文地址:https://www.cnblogs.com/xiaoyoucai/p/8183904.html