【问题标题】:Merging virtual and implementation inheritance in C++在 C++ 中合并虚拟继承和实现继承
【发布时间】:2021-11-25 16:55:52
【问题描述】:

我有一个基类和派生虚拟类,但是当派生实现继承自基实现和派生接口时,我会遇到歧义。

我知道别名可用于从基本实现中指定方法和变量。在 C++ 中有什么好的做法可以解决这个问题?

【问题讨论】:

  • 这本质上是钻石问题。可能的解决方案是聚合或虚拟继承。
  • 接口和实现是代表继承还是指向实现的指针模式?
  • 应该是直接继承,数据成员和方法都是直接从派生类中调用,不需要解引用。

标签: c++ inheritance polymorphism ambiguous


【解决方案1】:

这是“钻石问题”,在 C++ 中可以通过在继承中使用虚拟关键字来解决:

class B : virtual public A

https://en.wikipedia.org/wiki/Multiple_inheritance

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-31
    • 1970-01-01
    • 2016-03-26
    • 2011-01-08
    相关资源
    最近更新 更多