C++编码规范

本文详细阐述了C++编程中应遵循的编码规范,涵盖了类的设计、构造/析构函数的使用、数据结构的实现以及delete操作的注意事项,旨在提升代码质量和可维护性。
摘要由CSDN通过智能技术生成

C++编码规范

1 前言
本编码规范 针对 C++ 语言。
制定本规范的目的:
提高代码的健壮性,使代码更安全、可靠;
提高代码的可读性,使代码易于查看和维护。
本文档分别对 C++ 程序的格式、注释、标识符命名、语句使用、函数、类、程序组织、公共变量等方面做出了要求。规范分为两个级别——规则和建议。规则级的规范要求开发人员必须要遵守,建议级的规范开发人员应尽量遵守。
各项目组在用 C++ 语言或基于 C++ 语言的开发工具开发项目时,要遵守本规范。
2 编码规范正文
     以下是各条规范的具体内容。
2.1格式
     对代码书写格式的要求。
2.1.1 空行的使用
规范级别: 规则
规则描述:
● 在头文件和实现文件中,各主要部分之间要用空行隔开。
所谓文件的主要部分,包括:序言性注释、防止被重复包含部分(只在头文件中)、 # include 部分、 #define 部分、类型声明和定义部分、实现部分等等。
● 在一个函数中,完成不同功能的部分,要用空行隔开。
理由:
段落分明,提高代码的可读性。
2.1.2 哪里应该使用空格
规范级别: 规则
规则描述:
● 在使用赋值运算符、逻辑运算符、位运算符、算术运算符等二元操作符时,在其两边各加一个空格。
例: nCount = 2 ;而不是  nCount=2 ;
●  函数的各参数间要用“,”和一个空格隔开。
              例: void GetDate(int x, int y) ;
而不是 void GetDate(int x,int y) 或 void GetDate(int x ,int y) 。
理由:
提高代码的可读性。
2.1.3 哪里不应该使用空格
规范级别: 规则
规则描述:
● 不要在引用操作符前后使用空格,引用操作符指“.”和“ -> ”,以及“ [] ”。
● 不要在“::”前后使用空格。
● 不要在一元操作符和其操作对象之间使用空格,一元操作符包括“ ++ ”、“ -- ”“!”、“ & ”“ * ”等。
理由:
提高代码的可读性。
举例:
// 不要象下面这样写代码:
m_pFont -> CreateFont();
//应该写成这样
m_pFont->CreateFont();
2.1.4 缩进
规范级别: 规则
规则描述:
对程序语句要按其逻辑进行水平缩进,以两个空格或一个 Tab 符为单位(建议使用空格),使同一逻辑层次上的代码在列上对齐。
理由:
提高代码的可读性。
2.1.5 长语句的书写格式
规范级别: 规则
规则描述:
较长的语句要分成多行书写。长表达式要在低优先级操作符处分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,缩进长度以两个空格或 Tab 符长度为单位。
理由:
提高代码的可读性。
举例:
// 下面是一个处理的较为合理的例子
nCount = Fun1(n1, n2, n3)
+ (nNumber1 * GetDate(n4, n5, n6)) * nNumber1;
2.1.6 清晰划分控制语句的语句块
规范级别: 规则
规则描述:
控制语句(if , for , while , do...whule)的语句部分一定要用 ‘{ ’和‘ }’括起来(即使只有一条语句),并且‘{ ’和‘ }’ 应处在同一列上。
理由:
这样做,能够 划分出清晰的语句块, 使语句的归属明确,使代码更加容易阅读和修改。
举例:
//不要象下面这样写代码:
if (x == 0)
return;
else
while (x > min)
x--;
// 应该这样写
if (x == 0)
{
return;
}
else
{
while (x > min)
{
x--;
}
}
2.1.7 一行只写一条语句
规范级别: 规则
规则描述:
一行只写一条程序语句。
理由:
提高代码的可读性。
举例:
// 不要这样写
x = x0; y = y0;
while(IsOk(x)) {x++;}
// 应该这样写代码
x = x0;
y = y0;
while(IsOk(x))
{
x++;
}
2.1.8 一次只声明、定义一个变量
规范级别: 规则
规则描述:
一次(一条声明、定义语句)只声明、定义一个变量。
理由:
提高代码的可读性。
举例:
// 应该这样写
int width;
int length;
// 不要这样写
int width, length;
2.1.9 在表达式中使用括号
规范级别: 建议
规则描述:
对于一个表达式,在一个二元、三元操作符操作的操作数的两边,应该放置“(”和“)”。
理由:
避免出现不明确的运算、赋值顺序,提高代码的可读性。
举例:
// 下面这行代码:
result = fact / 100 * number + rem;
//最好写成这样
result = ((fact / 100) * number) + rem ;
2.1.10将操作符“*”、“&”和类型写在一起
规范级别: 规则
规则描述:
在定义指针、引用变量时,将操作符“*”、“&”和类型写在一起。
理由:
统一格式,提高代码的可读性。
举例:
// 不要象下面这样写代码:
 char *s;

//而应该写成这样
char* s;
2.2注释
这一部分对程序注释提出了要求。
程序中的注释是程序与日后的程序读者之间通信的重要手段。良好的注释能够帮助读者理解程序,为后续阶段进行测试和维护提供明确的指导。
下面是关于注释的基本原则:
1.  注释内容要清晰明了,含义准确,防止出现二义性。
2.  边写代码边注释,修改代码的同时修改相应的注释,保证代码与注释的一致性。
2.2.1 对函数进行注释
规范级别: 规则
规则描述:
● 在函数的声明之前,要给出精练的注释(不必牵扯太多的内部细节),让使用者能够快速获得足够的信息使用函数。格式不做具体要求。
● 在函数的定义之前,要给出足够的注释。注释格式要求如下:
/*************************************************************************
【函数名称】       (必需)
【函数功能】       (必需)
【参数】           (必需。标明各参数是输入参数还是输出参数。)
【访问变量】       (必需。列出该函数访问的全局变量、成员变量。)
【返回值】         (必需。解释返回值的意义。)
【使用情况】       (必需。调用其它函数的情况,被调用的情况)
【开发者及日期】   (必需)
【版本】           (必需)
【更改记录】       (若有修改,则必需注明)
*************************************************************************/
理由:
提高代码的可读性。
2.2.2 对类进行注释
规范级别: 规则
规则描述:
●  在类的声明之前,要给出足够而精练的注释。注释格式要求如下:
/*************************************************************************
【类名】             (必需)
【功能】          (必需)
【接口说明】           (必需)
【开发者及日期】       (必需)
【版本】              (必需)
【版权信息】           (可选)
【更改记录】          (若修改过则必需注明)
*************************************************************************/
理由:
提高代码的可读性。
2.2.3 对文件进行注释
规范级别: 规则
规则描述:
在头文件、实现文件的首部,一定要有文件注释,用来 介绍文件内容。注释格式要求如下:
/*************************************************************************
【文件名】                 (必需)
【功能模块和目的】     (必需&#
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值