Meh*_*dad 3 c++ inheritance private-inheritance
有人可以解释一下C++中究竟是私有/受保护的继承是什么,以及它要解决的问题是什么?
class Bar { };
class Foo : private Bar { };
Run Code Online (Sandbox Code Playgroud)
我已经看过这个问题,但我仍然不明白它是什么,更何况我应该使用它.
(与Java/C#或类似语言中的功能比较也可能有所帮助.)
私有继承模型"是以实现的方式实现的".意思类似于"has-a".不同之处是:
使用私有继承,您不需要编写包装器(适合懒惰的程序员)
"has -a"允许您更好地控制,您可以只公开接口的子集或更改方法名称(如果您愿意).
私有继承使异常安全变得困难,请查看特殊的c ++以获取更多信息
当您想要使用基类的受保护成员时,您确实需要私有继承.
有时在混合类中使用私有继承(Effective c ++ memory management章节)
我个人的偏好是使用"has-a"作为一般用途,我在排除其他选项之后使用私有继承.
归档时间: |
|
查看次数: |
528 次 |
最近记录: |