【问题标题】:Private field object vs private inheritance?私有字段对象与私有继承?
【发布时间】:2020-10-25 08:41:45
【问题描述】:

假设我们有 A 类。然后我正在编写 B 类,我需要使用 A 类而不暴露 A 类的公共成员。所以我可以使用私有继承,或者我可以将 A 的对象作为 B 的私有字段。如果我不需要添加直接操作 A 字段的新逻辑,我应该选择私有继承还是添加私有字段?

【问题讨论】:

  • 所以主要有publicprivateprotected。你似乎想要protected 来处理你的情况,但我会阅读更多关于访问修饰符的内容

标签: c++ oop inheritance


【解决方案1】:

如果您想使用 Class A 的公共成员而不公开它们,请不要将它们声明为公共,将它们声明为私有。将 B 类写为友元类,以便它可以访问 A 的私有数据字段。

【讨论】:

    【解决方案2】:

    Google 风格指南有很好的讨论为什么组合(私有字段)比继承更可取:

    https://google.github.io/styleguide/cppguide.html#Inheritance

    如果您只需要功能,继承没有任何好处。组合使意图清晰,并使代码更易于阅读和维护。

    【讨论】:

      猜你喜欢
      • 2020-09-04
      • 2013-01-09
      • 1970-01-01
      • 1970-01-01
      • 2011-01-05
      • 1970-01-01
      • 2010-12-07
      • 1970-01-01
      相关资源
      最近更新 更多