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

  • 本文关键字:继承 另一个 包含 一个 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 中使用,而在 D 中从 B 中使用 A 的方法?我知道这是一个愚蠢的问题。我需要通过修改 C 类来使其工作,因为 B 类和 D 类的开发是为了支持此类更改......

我建议您阅读有关虚拟/多重继承的常见问题解答。

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

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

最新更新