0

这是一个类:

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

这是另一个类:

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

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

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

我是否也继承了这两个类的构造函数?
如何编辑 D 类,以便可以通过以下方式构造派生类:

D d(11,22);
4

3 回答 3

3
class D : public P1, public P2
{
    public:
       D(int x, int y) : P1(x), P2(y) 
       {
       }
};
于 2012-09-28T06:25:18.523 回答
2

这是这样做的方法,

class D: public P1, public P2{
    D(int x, int y) // Have your own constructor for the derived class
        : P1(x), P2(y) {}
};
于 2012-09-28T06:25:40.643 回答
1

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

于 2012-09-28T06:30:16.660 回答