2009-09-14 61 views

回答

8

您不应该使用下划线前缀。它,并且根据C保留给执行++标准17.4.3.1.2/1:

名称和功能特征的某些集总是保留给执行:包含

  • 每个名称双下划线(_ _)或以下划线开头,后跟大写字母(2.11)保留给实施用于任何用途。
  • 以下划线开头的每个名称都被保留为,以便在全局名称空间中用作名称。

你可以采取Google C++ coding style看看。

+1

单个下划线仅保留在*全局名称空间*中。也就是说,我更喜欢m_ for C++代码。 – 2009-09-14 14:16:51

+0

不,他们被保留执行。并且实现在全局名称空间中使用它们。 – 2009-09-14 14:19:12

+2

这是如何格式化战争开始......我同意约二分之一的谷歌代码准则。另外1/2只是错误的国际海事组织。在该页面上最好的建议是“使用常识,保持一致。” – Glen 2009-09-14 15:51:43

1

看看我个人建议与M_与get和set前缀的访问方法,例如:m_age启动成员变量和int getAge(){}。

对于一个好的规则集命名惯例和最佳实践的阅读这两本书:

http://www.amazon.com/Code-Complete-Practical-Handbook-Construction/dp/0735619670/ref=sr_1_1/187-8545911-6271721?ie=UTF8&s=books&qid=1252936825&sr=8-1(一般的编程风格)

http://www.amazon.com/Coding-Standards-Rules-Guidelines-Practices/dp/0321113586/ref=sr_1_1/177-5450861-2480140?ie=UTF8&s=books&qid=1252936836&sr=8-1(C++特定)

0

这是由人真的不一样人。我个人用“getAge()”和“setAge(...)”来表示“int _age”。对于方法来说,使用名称和动词来感知它的作用是很常见的。只是调用一个方法“年龄”可能有点弥漫。但是,再一次,这关乎品味。

0

取决于。我更喜欢使用:
_age的领域
getAge和setAge的存取方法
它只是一个风格问题......但如果你用前面的get/set您的访问方法,那么你的代码会更清楚(I”假设你使用C++)

3

我建议不要使用前导下划线。你使用的是合法的,但由于一些以下划线开头的名字是为实现保留的,我宁愿完全避免它们。

我在哪里,我们使用m_,如m_age来代表会员。它工作得很好。

另外,你是否觉得你应该为所有班级成员提供访问者?公共职能应暴露类行为,而不是类成员。

11

两件事:

1)避免使用前导下划线。一般惯例是编译器供应商使用下划线和双下划线作为引入关键字的手段。例如,Microsoft Visual C++中的___declspec。这就是为什么你在一些C++文献中看到尾部下划线(例如int foo_;)的原因。

2)你的问题没有答案。对不起,没有帮助。 C++社区在这方面不像其他社区。 Sun为Java建立了一种风格标准。微软已经在C#的MSDN中记录了一种样式标准。其他社区倾向于遵循编程语言作者的风格。 “van Rossum如何写Python?”或者“马茨如何写Ruby?”你没有在C++中看到这个。虽然Stroustrup的书有一个明确的风格,但没有人遵循它。即使是最着名的C++数字也都有自己的风格。

我可以提供的唯一建议是一致的。无论你选择什么风格都无所谓。 (注意:这是来自一个强迫症患者,我可以理解这个话题没有明确答案的痛苦,但是我越老,我越学会放弃这个问题)。