2013-08-18 101 views
-3

爲清楚起見考慮下面的例子:如何在C++的構造函數中初始化類的成員對象?

class A{ 
    public: 
     A(int i){...} 
} 

class B{ 
    private: 
     A A_instance; 
    public: 
     B(){ 
      ... 
      //how can i initialize the A_instance with specific constructor ? 
      ... 
     } 
} 

我想,你得到的是我的問題(知識缺乏:d)。我如何使用B類中的特定構造函數初始化A_instance?

回答

3

您需要使用構造函數初始化列表,這是顯式初始化數據成員的唯一方法。

B() : A_Instance(42) 
{ 
    // by the time we get here, all data members have been initialized 
} 
1

如前面的註釋所述,您使用初始化程序列表,而不是在構造函數體內部。這很好,因爲它是在創建時初始化A_instance而不是之後的。

class A{ 
    public: 
     A(int i){...} 
} 

class B{ 
    private: 
     A A_instance; 
    public: 
     B() : A_instance(0) { 
      ... 
      ... 
     } 
} 
相關問題