同上

解决方案 »

  1.   

    b derived from a.
    c derived from a.
    d derived from b and c.
      

  2.   

    ------
                A
              ------
               /  \
           -----  ------
             B      C 
           -----  ------
              \    /
              ------
                D
              ------是不是一个菱形图?
    这种不良的继承有一个严重的后果,就是在D类对象内部含有两份A类数据成员。
      

  3.   

    楼上两位说的都是菱形继承。
    vc中好像有一个操作符可以指定菱形继承的类对象内只保留一份共同祖先类的成员(D类对象内部含有两份A类数据成员)
    //还是由编译系统自动调整的
    记不得了,
    不过肯定能避免保留两分共同祖先类得数据成员。
      

  4.   

    class A { ... }
    class B : public A { ... }
    class C : public A { ... }
    class D : public B, public C { ... }在这里,D同时继承自B和C,而B和C又都是从A中继承过来的,这四个类就构成了一个菱形继承