ein*_*ica 0 c++ coding-style class getter-setter
我已经阅读了关于访问器方法的3种不同约定的社区wiki查询,并且看到以下约定并不令人惊讶:
const unsigned& amount() const { return _amount; }
unsigned& amount() { return _amount; }
Run Code Online (Sandbox Code Playgroud)
是的,它与无缝的完全不同,因为它能够完全避免括号() - 这会(我觉得)是想法 - 但它仍然是某种东西; 对?
它违背了访问者的目的.如果您提供这两个函数,您也可以将数据成员公开并完成它.
编辑:
只是为了让事情非常清楚:有有情况下,使用C风格struct是最合适的解决方案.在这些情况下,您将数据成员公开,并且不必担心访问者.另一方面,对于具有重要行为的类,您根本不会有访问者,或者很少访问者.在大多数情况下,内部状态不会直接反映在公共接口上(并且该状态通常是只读的).关于你需要访问器的唯一时间是基本上是数据的类,但必须强制执行数据的不变量,
(并且值得的是:如果数据在逻辑上是类的属性,我使用:
int amount() const { return myAmount; }
void amount( int newValue ) { myAmount = newValue; }
Run Code Online (Sandbox Code Playgroud)
但是,对于不是逻辑属性的值的getter,我将使用getAmount().)