2013-08-18 77 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) { 
      ... 
      ... 
     } 
} 
相关问题