关于 C + + 中的访问器方法有几个问题已经在 SO 上提出,但是没有一个能够满足我对这个问题的好奇心。
我尽可能避免使用访问器,因为像 Stroustrup 和其他著名程序员一样,我认为一个类中有许多访问器是糟糕 OO 的标志。在 C + + 中,我可以在大多数情况下向类中添加更多的责任,或者使用 friend 关键字来避免它们。然而在某些情况下,您确实需要访问特定的类成员。
有几种可能性:
1. 根本不要使用访问器
我们可以将各个成员变量公开。这在 Java 中是不可行的,但是在 C + + 社区中似乎没有问题。但是,我有点担心的是,应该返回对象的显式副本或只读(常量)引用,这是否有些夸张?
2. 使用 Java 风格的 get/set 方法
我不确定它是否来自 Java,但我的意思是:
int getAmount(); // Returns the amount
void setAmount(int amount); // Sets the amount
3. 使用目标 C 风格的 get/set 方法
这有点奇怪,但显然越来越普遍:
int amount(); // Returns the amount
void amount(int amount); // Sets the amount
为了实现这一点,您必须为您的成员变量找到一个不同的名称。有些人添加下划线,有些人添加“ m _”。我也不喜欢。
你用什么款式? 为什么?