c ++的首选命名约定是什么?

时间:2008-12-11 22:10:43

标签: c++ naming-conventions

通过查看boost库和stl,然后查看人们的示例,我感到非常困惑。似乎大写的类型名称穿插着全部小写,由下划线分隔。

这些天应该做些什么?我知道.NET世界有它们自己的约定,但它看起来与C ++领域完全不同。

4 个答案:

答案 0 :(得分:9)

你打开了多少虫子。

C ++标准库对所有内容使用 underscore_notation ,因为这就是C标准库使用的内容。

因此,如果您希望您的代码在整个主板上看起来一致(并且实际上没有使用外部库),那么这是唯一的方法。

你会看到强制使用相同的表示法,因为它们的库通常会被考虑用于未来的标准。

除此之外,还有许多惯例,通常使用不同的符号来指定不同类型的符号。对于变量,通常使用 CamelCase 作为自定义类型,例如class和typedef,使用 mixedCase ,特别是区分这两者,但这肯定不是通用标准。

还有 Hungarian Notation ,它进一步区分了特定的变量类型,尽管只是提到这个短语会引起某些程序员的敌意。

作为一名优秀的C ++程序员,最好的答案是采用您所沉浸的代码中使用的任何约定。

答案 1 :(得分:2)

没有好的答案。如果您正在与现有代码库集成,那么匹配它们的样式是有意义的。如果您要创建新的代码库,则可能需要建立简单的指南。

Google has some

答案 2 :(得分:0)

根据图书馆和组织的不同,它会有所不同。

对于我正在构建的开发人员实用程序库,例如,我在约定的样式中包含各种约定的友好包装器模块。因此,例如,MFC包装器模块对成员使用'm_typeMemberVariable'表示法,而STL包装器模块使用'member_variable'。我正在尝试构建它,以便使用任何前端都具有该类型前端的典型样式。

拥有普遍风格的问题是每个人都必须同意,并且(例如)对于每个厌恶匈牙利符号的人,有其他人认为不使用匈牙利符号会减损代码可理解性的基本价值。因此,不太可能很快就会有C ++的通用标准。

答案 3 :(得分:-1)

找到你觉得舒服的东西并坚持下去。某种形式的风格比没有风格更好,并且不要太过于依赖其他图书馆的做法。

FWIW我使用谷歌C ++风格指南(有一些调整)。

http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml