我对查看boost库和stl以及查看别人的示例感到相当困惑。似乎大写的类型名称与全部小写用下划线分隔混合在一起。
这些天应该如何做事情呢?我知道.NET世界有他们自己的一套惯例,但它似乎完全不同于C++领域。
我对查看boost库和stl以及查看别人的示例感到相当困惑。似乎大写的类型名称与全部小写用下划线分隔混合在一起。
这些天应该如何做事情呢?我知道.NET世界有他们自己的一套惯例,但它似乎完全不同于C++领域。
你打开了一个棘手的问题。
C++标准库使用下划线命名法来表示所有内容,因为C标准库也是这样做的。
因此,如果您希望代码在各个方面看起来一致(并且实际上没有使用外部库),那么这是唯一的方法。
您会看到boost使用相同的符号,因为他们的库经常被考虑用于未来的标准。
除此之外,还有许多惯例,通常使用不同的符号来指定不同类型的符号。通常使用CamelCase来表示自定义类型,例如类和typedefs,以及mixedCase来表示变量,特别是为了区分这两种类型,但这肯定不是普遍的标准。
还有匈牙利命名法,它进一步区分特定的变量类型,尽管仅提到这个短语就可能引起一些程序员的敌意。
作为一名优秀的C++程序员,最好的答案是采用您正在接触的代码中使用的任何约定。
这将取决于库和组织的不同。
例如,对于我正在构建的开发人员实用程序库,我正在包括各种约定的友好包装器模块。因此,例如,MFC包装器模块使用“m_typeMemberVariable”符号表示成员,而STL包装器模块使用“member_variable”。我试图构建它,以便无论使用哪种前端,都具有该类型前端的典型样式。
普遍风格的问题在于,每个人都必须达成一致意见,例如,对于每个憎恶匈牙利符号的人,都有其他人认为不使用匈牙利符号会减少代码的可理解性的基本价值。因此,C++很难有一个通用标准。
找到你感觉舒适的东西并坚持下去。有些风格总比没有风格好,不要过于关注其他库的使用方式。
顺便说一句,我使用 Google C++ 风格指南(带有一些调整)。
http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml