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

时间:2012-09-28 06:22:35

标签: c++ class inheritance constructor c++11

这是一个班级:

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

这是另一个类:

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

这是一个继承自上述两个类的类:

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

我是否也是这两个班级的建设者? 如何编辑D类,以便我可以通过以下方式构造派生类:

D d(11,22);

3 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:2)

这是做到这一点的方法,

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

答案 2 :(得分:1)

构造函数不能 隐式继承。 但是为了能够使用基类构造函数,使用成员初始化语法,如prevoius答案中已经提出的那样