2010-11-17 169 views
1

以一个场景,如下图所示:调用构造函数

Class A : public B 
{ 

private: 
C obj 
public: 
A() 

} 

Class B 
{ 
B(int , int) 
} 


Class C 
{ 
C(); 
C(int , int) 
} 

有没有办法通过初始化一个类的对象的时候,我可以调用非默认的构造函数?

我知道初始化B,我可以这样做:

A():B(int, int) //but what if I want to initalise C also? 
+2

您的C++书籍不讨论初始化程序列表的这些细节吗? – 2010-11-17 07:23:49

+0

也许你的意思是'class',并且有分号。 – GManNickG 2010-11-17 07:25:20

+0

不确定你的意思是Gman ..但我的问题措辞正确。 – Sii 2010-11-17 07:36:32

回答

4

两个基类和数据成员,也出现在初始化列表:

A() : B(42, 42), obj(42, 42) { } 
+0

我曾尝试过这可能是它的只是不是构造问题。感谢feedack。 – Sii 2010-11-17 07:29:44

1

A() : B(int, int), obj(int, int) {}

1

你这样做:

A(): B(int, int), obj(int, int)