在SO上已经问了几个有关C ++中访问器方法的问题,但没有一个能满足我对此问题的好奇心。
我尝试尽可能避免访问器,因为像Stroustrup和其他著名的程序员一样,我认为带有很多此类的类是OO不好的标志。在C ++中,在大多数情况下,我可以为类增加更多责任,或使用friend关键字避免此类情况。但是在某些情况下,您确实需要访问特定的班级成员。
有几种可能性:
1.完全不使用访问器
我们可以仅公开各个成员变量。在Java中这是不行的,但对于C ++社区似乎可以。但是,我有点担心要返回一个对象的显式副本或只读(const)引用,是否夸大了?
2.使用Java风格的get / set方法
我不确定它是否完全来自Java,但是我的意思是:
int getAmount(); // Returns the amount
void setAmount(int amount); // Sets the amount
3.使用客观的C风格的获取/设置方法
这有点奇怪,但显然越来越普遍:
int amount(); // Returns the amount
void amount(int amount); // Sets the amount
为了使它起作用,您将不得不为您的成员变量找到一个不同的名称。有些人在下划线后面加上下划线,其他人则在前面加上“ m_”。我也不喜欢
您使用哪种风格,为什么?