考虑以下:
类 B 从班级公开继承 A。两者都在库中提供,我无法修改它们。
我想实现一个类 Foo 源自 B,但我想允许用户 Foo 仅使用公共功能 A 和 Foo (不是来自 B)。对他们而言,与此无关 Foo 继承自 B,这原则上是我无法避免的实施细节。
所以,原则上我想要 Foo 公开继承 A,但私下来自 B。
C ++中是否有一些构造允许我这样做?
我必须补充一点,因为虚拟继承不是一种选择 A就我而言,源于 QObject (看到 如果QObject是直接派生的,那么使用* virtual * multiple inheritance是否安全?)。
(注意:感兴趣的人:就我而言, A 是 QWindow 和 B 是 Qt3DExtras::Qt3DWindow)