在用c ++编写类时,通常将方法公之于众,将属性设置为私有/公共,这样就无法从外部访问这些属性。
但是当我们使用getter / setter时,可以从外部轻松访问这些属性。那么,为什么要把它们作为私人/受保护的第一手资料;如果我们稍后要使用setter / getters进行修改。
我对这个问题很困惑。好的解释会有所帮助。
感谢。
答案 0 :(得分:2)
你永远不应该提供吸气剂和默认情况下,只有在类的用例需要它们时才设置setter。这对于制定者来说几乎不会是真的,只有偶尔会出现在吸气者身上。
考虑std::string
类。提供对其私有数据成员的访问权限是否有意义?不,只有其中一个通过size()
getter暴露(当前长度),没有通过setter暴露。
答案 1 :(得分:1)
答案 2 :(得分:0)
正如Adelf所说,添加逻辑。 也是仅写入或仅读取值的选项。
答案 3 :(得分:0)
您可以限制对属性的访问,即如果您将在没有setter的情况下编写getter,则属性将是只读的。还可以添加一些有用的逻辑,即用于设置器 - 验证边界价值条款。 您还可以添加属性的getter,其值在调用时计算