文档介绍:C++ 编码风格指南
(张新宇)
介绍
使用一致的编码风格的好处和重要性:
增强代码的可读性和可维护性
为项目组成员之间共享代码提供方便;
易于进行代码检查;
节省对代码进行格式化的时间;
该指南不是强制性的,也没有覆盖所有情况,但希望尽量遵守。
源文件
一个源文件应只包含一个类的定义(.h)或实现部分(.cpp)。其中:
类的定义部分的文件名形式为:
类的实现部分的文件名形式为:
其中,ClassName为类名。
如果某个类的定义很小,可以放在与它相关或包含它的另一个类的源文件中。
在每个文件的开头,应注释有该文件所包含的模块名称、编制人、和最后的修改时间等信息。
命名规范
对于类、类的成员变量、类方法、方法参数、和局部变量采用不同的命名方法,以便能够在程序中方便的通过名称辨别相应元素的类型和作用范围,并保持一致的风格。所有元素的命名都应有意义。
类的命名
对于所有类的命名,应采用InfixCaps风格,即:
类名由大写C_开头;
对于类型中所包含的每一个单词或缩写,以大写开头,其余小写;
不要用下划线'_' 分割单词;
类名应为名词或名词短语;
举例:
// Good
class C_DatabaseManager
class C_UserInterface
// Bad
ManageDatabase // 使用了动词短语
database_manager // 使用下划线分隔单词
成员变量的命名
对于类成员变量(特别是私有成员变量)的命名, 应采用infixCaps风格(注意不是上面的InfixCaps),即:
用m_开头;然后以小写字母开头,后面的每个单词以大写字母开头,其余部分小写;如:
int m_fieldName
布尔类型的变量,可以冠以is,或以able结束;如:
boolean isNull ;
boolean resizable;
指针类型的变量,应以冠以p ,后跟大写字母;如:
C_Layer* m_pLayer ;
所有常量全部大写,并用下划线分开。如:MAX_FIELD_LENGTH
方法的命名
对于类方法的命名, 应采用InfixCaps风格,即:
以大写字母开头,后面的每个单词以大写字母开头,其余部分小写;
不要用下划线'_' 分割单词;
方法名应用动词或动词短语;
举例:
// Good
ShowStatus( ) , DrawCircle( )
// Bad
mouseButton( ) // 不是动词短语
add_feature( ) // 不应用下划线
对于获取或设置类属性(成员变量)的方法,应由get或set开头,如:GetHeight(), SetHeight()
如果获取或设置的值为一个指针类型,则以Ptr作为方法名的结尾,如:C_Layer* GetLayerPtr();
如果方法是测试类的某个布尔属性,则方法名应为IsXxx( ),如:IsVisible( )
方法参数的命名
除没有m_前缀外,与类成员变量的命名方式相同。如:
SetFieldHeight ( int fieldHeight ) ;
局部变量命