C ++中的同时私有和公共继承
假设一个类
Y
公开继承了一个类X
。公开继承X
,是否有可能让一个班级Z
私下继承Y
?
为了更清楚,假设X
定义了公共方法x1
和x2
。 Y
继承X
,覆盖x1
并提供方法y
。 C ++是否允许将第二类Z
子类化为Y
,使得ѭѭѭ的implementation6ѭ和y
的实现是私有的,而外界只看到它公开继承X
,即只有一种公共方法x2
?
没有找到相关结果
已邀请:
5 个回复
佃蒜狗掂哥
人们不能做
或
但他们可以做
并且可以将
转换为
。但是,一旦他们这样做,他们当然可以拨打
和
。 你还没有说过你的目标,但听起来你真的想把
作为指针
这看起来对我来说比较熟悉。
绵扇寸访
部分使用
。当然,如果Y覆盖x2,那么你将忽略这个覆盖。
禽兢玫坞劲
从
公开继承,则
和ѭ7都可用:虽然
的可访问性可能在
中改变,但没有什么能阻止外界通过
指针操纵
并调用
。 话虽这么说,你可能也有
私下从
继承并公开从
继承,但正如约翰内斯所指出的那样,你应该研究虚拟继承,因为
将从
继承两次。 根据您的需要,您可能还想查看装饰器模式(可能它完全不相关,但出于某种原因,我通过阅读您的问题感觉它是您想要实现的):
在这个快速而脏的代码示例中,
是一个
(公共继承),但是重用了
实现。
杭难插
诧不达