什么是更好的做法?保护/吸气?

Sir*_*lot 8 c++ oop

如果我有一个继承自另一个类的类,并且只有这个类必须使用某个变量,这是更好的做法吗?让所述变量在基类中被"保护",或者将其变为私有并为其提供受保护的getter?

我听说过相互矛盾的事情.我的老师告诉我总是使用吸气剂,而其他人告诉我,在任何级别使用吸气剂都会发现糟糕的程序设计.真正的答案是什么?我觉得两者都是不合逻辑的极端.

另外,如果getter和setter是糟糕的程序设计,为什么呢?

是否有任何资源可以教会我如何构建代码?

Luc*_*ore 0

在大多数情况下,getter 和 setter 确实暴露了糟糕的设计。但没有一般规则。使用 getter 和 setter 的主要原因应该是为了调试,因此当您从派生类访问某些基类成员时,您可以在某个点设置断点来拦截对该成员的更改。

所以,你应该适应。如果您计划有 2-3 级继承,最好使用受保护的成员,因为成员可以更改的地方不多。如果更多,受保护的 setter/getter 可能是更好的选择 - 您不想在每个可能修改基类成员的类中设置断点。