



免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C+ 编码风格指南(张新宇)1 介绍使用一致的编码风格的好处和重要性: 增强代码的可读性和可维护性 为项目组成员之间共享代码提供方便; 易于进行代码检查; 节省对代码进行格式化的时间;该指南不是强制性的,也没有覆盖所有情况,但希望尽量遵守。2 源文件a. 一个源文件应只包含一个类的定义(.h)或实现部分(.cpp)。其中:o 类的定义部分的文件名形式为:ClassName.h o 类的实现部分的文件名形式为:ClassName.cpp 其中,ClassName为类名。b. 如果某个类的定义很小,可以放在与它相关或包含它的另一个类的源文件中。c. 在每个文件的开头,应注释有该文件所包含的模块名称、编制人、和最后的修改时间等信息。3 命名规范对于类、类的成员变量、类方法、方法参数、和局部变量采用不同的命名方法,以便能够在程序中方便的通过名称辨别相应元素的类型和作用范围,并保持一致的风格。所有元素的命名都应有意义。3.1 类的命名对于所有类的命名,应采用InfixCaps风格,即: 类名由大写C_开头; 对于类型中所包含的每一个单词或缩写,以大写开头,其余小写; 不要用下划线 _ 分割单词; 类名应为名词或名词短语;举例:/ Goodclass C_DatabaseManagerclass C_UserInterface/ BadManageDatabase/ 使用了动词短语database_manager/ 使用下划线分隔单词3.2 成员变量的命名对于类成员变量(特别是私有成员变量)的命名, 应采用infixCaps风格(注意不是上面的InfixCaps),即: 用m_开头;然后以小写字母开头,后面的每个单词以大写字母开头,其余部分小写;如:intm_fieldName 布尔类型的变量,可以冠以is,或以able结束;如:booleanisNull ;boolean resizable; 指针类型的变量,应以冠以p ,后跟大写字母;如:C_Layer* m_pLayer ; 所有常量全部大写,并用下划线分开。如:MAX_FIELD_LENGTH3.3 方法的命名对于类方法的命名, 应采用InfixCaps风格,即: 以大写字母开头,后面的每个单词以大写字母开头,其余部分小写; 不要用下划线 _ 分割单词; 方法名应用动词或动词短语;举例:/ GoodShowStatus( ) , DrawCircle( ) / BadmouseButton( ) / 不是动词短语add_feature( )/ 不应用下划线 对于获取或设置类属性(成员变量)的方法,应由get或set开头,如:GetHeight(), SetHeight() 如果获取或设置的值为一个指针类型,则以Ptr作为方法名的结尾,如:C_Layer* GetLayerPtr(); 如果方法是测试类的某个布尔属性,则方法名应为IsXxx( ),如:IsVisible( )3.4 方法参数的命名除没有m_前缀外,与类成员变量的命名方式相同。如:SetFieldHeight ( int fieldHeight ) ;3.5 局部变量命名局部变量的命名全部用小写,单词间用下划线分隔,从而便于识别变量的作用范围。如:int error ;int time_of_error ;注意:尽量不要用单个字母,如:p,r 。对于简单for循环的计数变量,可以用i,j等单字母变量;但对于有意义的计数变量,也应用具有意义的名词,如field_index ;4 布局风格 一行代码最多只能包含一个语句; 组合语句的括号采用如下风格:for (i =0; i 10; i+)statement1;if ( j 10) & ( n 20) ) o for ( index = 0 ; index 10 ; index + ) 在方法的声明中,如果有多个参数,可采用如下布局,以提高可读性:int Add( int arg1, char*argr2, doublearg3 ) ;5 源文件的内部布局5.1 头文件的布局 ( .h )在定义一个类的头文件中,采用如下布局形式:/本文件的说明和版本信息/#ifndef XX_h#define XX_h/ SYSTEM INCLUDES - 包含系统级的头文件#include / PROJECT INCLUDES- 包含本工程级的头文件#include xx.h/ LOCAL INCLUDES - 包含本文件的局域头文件/ FORWARD REFERENCES/ XX类的描述文档信息/class XXpublic:/ LIFECYCLE- 构造与析构函数 / 构造函数 XX(void); / 析构函数 XX(void);/ Interface Declaration - 外部接口声明(Public Methods) int DrawArea(void);/ ACCESS METHODS- 类属性访问函数的声明 int GetSize(void); voidSetSize(int size);protected:private:/ Private Methods- 私有方法的声明 int xxx();/ Member Variables- 类成员变量的声明 int m_size; ;/ INLINE METHODS- inline函数的实现/ EXTERNAL REFERENCES/#endif / _XX_h_在该布局中,将类的外部接口部分放在文件前部,便于该类的使用者察看其接口的定义。此外,当向外部提供接口时,可以将本文件前部的接口定义部分摘出来(去掉私有方法和成员变量的声明部分),作为该类接口的头文件提供给用户。5.2 实现部分的布局 ( .cpp )在类的实现部分,采用如下布局形式:/本文件的说明和版本信息/#include XX.h / class impleme
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 出租车车辆自然课件
- 出租培训课件
- 出国留学安全培训中心课件
- 2025租房合同模板示例
- 腾讯招聘笔试题库2025
- 大一政治闭卷考试题目及答案
- 2025酒店租赁合同范本
- 冲压车间消防安全培训课件
- 2025全面代码购销合同
- 2025货物采购代理合同样本范文
- 报名表的模板
- 工程力学专业就业能力展示
- 专升本英语高频词汇完全版
- 2025年杭州市能源集团招聘笔试参考题库含答案解析
- 自考《01685动漫艺术概论》考试复习题库(含答案)
- 肺癌的饮食护理
- 医院安防监控系统维保方案
- GB/T 44570-2024塑料制品聚碳酸酯板材
- GB/T 16288-2024塑料制品的标志
- 浙美版小学四年级上册美术教案全册
- 某部营房零星改造工程投标方案(技术标)
评论
0/150
提交评论