2012-09-28 17 views
0

这里的构造一个继承的类是一类:通过调用两个参数化的父类的构造函数

class P1{ 
public: 
    P1(int i){} 
}; 

下面是另一个类:

class P2{ 
public: 
    P2(int i){} 
}; 

这里是从上面的两个类继承的类:

class D: public P1, public P2{ 
    //? 
}; 

我是否也侵入了这两个类的构造函数?
如何编辑d类,这样我可以通过以下方式构建派生类:

D d(11,22); 
+1

不,您没有___继承构造函数。但是你可以访问基类的构造函数。 – Hindol

+0

你需要的是[Member Initalizer list](http://stackoverflow.com/questions/1711990/what-is-this-weird-colon-member-syntax-in-the-constructor)。 –

+1

class P1:代替A代表P1吗? –

回答

3
class D : public P1, public P2 
{ 
    public: 
     D(int x, int y) : P1(x), P2(y) 
     { 
     } 
}; 
2

这是为了做到这一点,

class D: public P1, public P2{ 
    D(int x, int y) // Have your own constructor for the derived class 
     : P1(x), P2(y) {} 
}; 
1

构造能t隐含继承。 但是为了能够使用基类构造函数,使用成员初始化语法已经在prevoius答案中提出了

相关问题