请考虑以下内容:能在C++中隐藏部分继承层次结构吗?
类B
公开继承A
类。两者都在库中提供,我不能修改它们。
我想实现一个类Foo
从B
派生的,但我想允许的Foo
用户使用的(来自B
不)A
和Foo
唯一的公共职能。对于他们而言,Foo
继承自B
并不相关,原则上这是我无法避免的实现细节。
所以,原则上我想Foo
从A
公开继承,但私下从B
。
C++中是否有一些构造允许我这样做?
我必须补充说,虚拟继承不是一个选项,因为A
,在我的情况下,从QObject
派生(见Is it safe to use *virtual* multiple inheritance if QObject is being derived from DIRECTLY?)。
(注:对于有兴趣的人:在我的情况,A
是QWindow
和B
是Qt3DExtras::Qt3DWindow
)
'struct foo:A {B b; “工作? – Danh
只是不记录你的类派生自B.说它来自A.这不是一种方法来阻止一个确定的用户想要访问B,但没有其他的东西。 –