考虑以下:
类 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
)