构造函数初始化列表

构造函数参数初始化列表

  当类中的成员包含对象时,在定义构造函数初始化成员需要使用初始化列表将对象成员初始化,如下段代码中的m_a1和m_a2;

  构造对象成员的顺序与初始化的顺序无关,与对象成员的定义顺序有关;

  如果类的成员中包含常量,如const int m_c,那么构造函数初始化参数时必须使用初始化列表对常量初始化,如B(int a,int b,int c):m_a(a), m_b(b), m_c(c){},其中m_c对应相应类中的常量成员。

 1 class A{
 2 public:
 3     A(int a){
 4         m_a = a;
 5     )
 6 private:
 7     int m_a;
 8 }
 9 
10 class B{
11 public:
12     B(A &a1,A &a2,int b):m_a1(a1),m_a2(a2){
13         m_b = b;
14     }
15 private:
16     A m_a1;
17     A m_a2;
18     int m_b;     
19 }

  如下图中方式:

            

posted @ 2018-12-02 16:18  zarjen  阅读(310)  评论(0)    收藏  举报