0

ここにクラスがあります:

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

ここに別のクラスがあります:

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

上記の 2 つのクラスを継承するクラスを次に示します。

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

2 つのクラスのコンストラクターも継承しましたか?
次の方法で派生クラスを構築できるように、クラス 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 に答える