0

次のコードでは、 How did the constructor work?Multi Path Inheritanceを使用して解決されました。Virtual Classコンストラクターを継承したり、仮想または静的にすることはできません。

/*Multi Path Inheritance*/

class A{

public:
    int a;
    A(){
        a=50;
    }
};


class B:virtual public A{

public:
    /*B(){
        a = 40;
    }*/

};

class C:virtual public A{

public:
    /*C(){
        a = 30;
    }*/

};

class E:virtual public A{

public:
    E(){
        a = 40;
    }

};

class D : public B, public C, public E{

public:
    D(){
        cout<<"The value of a is : "<<a<<endl;  
    }

};

int main(int argc, char *argv[]){

    D d;
    return 0;
}
4

2 に答える 2