继承一个继承已包含的另一个类的类

时间:2017-06-30 08:56:56

标签: c++

我有类似这样的代码示例:

    class A
    {
       public:
         bool ComputeSomething(double &x, double y);
       ...
    };

    class B: public A{...}
    class C: public A{...}
    class D: public B, public C
    {
      bool FindSomething(const A& a);
      ...
    }

我的问题是,在D类中,函数FindSomethng不知道A是来自B还是C.是否有办法在C中阻止A,以便C中的C中的方法仅用于C和D中使用B的A方法?我知道这是一个愚蠢的问题。我需要通过修改C类来使其工作,因为要开发B类和D类来支持这样的变化......

1 个答案:

答案 0 :(得分:1)

我建议您在虚拟/多重继承上阅读此FAQ

在C ++中,如果你有多个继承,要么它是非虚拟的,在这种情况下你会获得公共基类的多个副本,或者它是虚拟的,在这种情况下只有一个公共基类的副本。

在大多数情况下,最好避免多重继承。