【发布时间】:2011-02-10 05:04:27
【问题描述】:
假设一个类有私有数据成员,但 setter 和 getter 在公共范围内。如果你从这个类继承,你仍然可以调用那些 setter 和 getter——允许访问基类中的私有数据成员。既然提到派生类不能继承私有数据成员,这怎么可能
【问题讨论】:
-
派生类确实继承私有数据成员。
-
更令人困惑的是,您可以覆盖基类的私有虚函数。
-
@Space_C0wb0y:这一点也不令人困惑。它被称为模板方法模式(不幸的是,它与 C++ 模板无关)
-
当您为属性添加 getter 和 setter 时,请务必重新考虑:有时它们非常好,但有时应该通过另一个更具描述性的界面来完成工作。
标签: c++ inheritance