假设我有一个类 Foo
,它有一个私有(private)变量 bar_
,其中包含 Foo
的一些状态。如有必要,我可以为 bar_
编写公共(public) get/set 方法。当然,我会尽可能避免这种情况以保持封装性。
假设我有这些 get/set 方法,每当我必须在属于 Foo
的方法中访问或修改 bar_
时,我通常直接对 进行bar_
,而不是使用我用于从类外部访问 bar_
的 get/set 方法。除了担心直接访问变量与调用方法的速度之外,我没有其他理由,但我怀疑如果 get/set 方法是内联定义的(它们是内联的),它应该不会有什么不同。这有什么不同吗? const
在这方面有影响吗?
到目前为止,我对此没有任何问题,但我有一种挥之不去的感觉,我做错了。是否有任何令人信服的理由可以证明不这样做?有关于此的指导方针吗?
最佳答案
我知道这有点离谱,但我讨厌 get/set 方法。 讨厌他们。几乎从不写。
一般来说,一个类应该提供比直接和简单地读取和修改内部状态变量更多的高级操作,或者它应该让开并像 struct
那样行事。
即使我要写一个,我也几乎不会在类里面使用它。它们的重点是您可以在不影响客户的情况下更改事物的内部表示。在类内部,它是您关心的内部表示! 如果您很想在类中使用自己的接口(interface)对类执行大量操作,您可能有第二个类在努力摆脱困境。
关于c++ - 在 C++ 中调用 this->get/this->set 方法与直接访问成员变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2374009/