慕无忌1623718
没有理由避免它,它在情况下非常有用。但您需要了解潜在的问题。最大的一个是死亡钻石:class GrandParent;class Parent1 : public GrandParent;class Parent2 : public GrandParent;class Child : public Parent1, public Parent2;您现在在Child中有两个GrandParent“副本”。C ++已经想到了这一点,并允许你做虚拟继承来解决问题。class GrandParent;class Parent1 : public virtual GrandParent;class Parent2 : public virtual GrandParent;class Child : public Parent1, public Parent2;始终检查您的设计,确保您没有使用继承来节省数据重用。如果你可以用组合表示相同的东西(通常你可以),这是一个更好的方法。