2010-02-17 27 views
0

可能重复:
Why use getters and setters?封装,数据隐藏,制定者/在C干将++

,而写在C类++,通常的方法是公开的,和属性是由私人/公共的,所以这些属性不能从外部访问。

但是当我们使用getters/setters时,这些属性可以很容易地从外部访问,修改。那么,为什么要让他们私下/保护第一手;如果我们打算稍后使用setter/getters来修改。

我一直与这个问题混淆。很好的解释会有帮助。

谢谢。

+0

对不起 - 应该知道更好 - 这是http://stackoverflow.com/questions/1568091重复;投票结束。 – 2010-02-17 10:12:29

回答

1
  1. 将来你可以在setters/getters中添加一些逻辑。
  2. 有时getter/setter方法可以与抽象的东西在动态数组
0
作为

指出Adelf操作...像计,添加逻辑。 也是只写或只读值的选项。

0

您可以限制对属性的访问权限,即如果您将不使用setter编写getter,属性将为只读属性。也可以添加一些有用的逻辑,即用于设置者 - 验证边界值条款。 您也可以对属性添加吸气剂,其在呼叫

2

你永远不应该被默认提供的getter & setter方法计算出的值,只有在类的用例需要他们。这对于二传手来说几乎不会是真的,只有偶尔对于吸引者来说。请参考std::string类。访问其私有数据成员是否有意义?不,只有其中一个通过size()获得者暴露(当前长度),并且没有通过setter。