C++代码编写规范

1. 文件的创建

使用#define宏进行头文件重复include保护

2. 文件命名(命名尽量不要使用缩写,具有描述性)

文件命名使用下划线;(小写)

类型命名使用驼峰法;

普通变量使用下划线;

类数据成员使用和普通变量相同的下划线;

常量:const KTableName   驼峰;

函数命名: 驼峰法;

枚举命名规范:enum UrlTableErrors{

kOK=0,

kErrorOutOfMemory,

kErrorMalformedInput,

};

宏命名:MY_MACRO_THAT_SCARES_SMALL_CHILDREN

命名空间;命名独特不冲突即可,不要使用无意义的类和类静态成员,不修改约定俗成的namespace std

类:

构造函数中不要使用虚函数,无法在派生类里初始化

构造函数使用explicit防止隐式类型转换;

注意:

组合:将对象包含到其他对象实现代码复用的方式,体现的是has-a关系,即一个对象拥有了另一个对象;

继承:通过创建新类来扩展现有类,体现的是is-a关系,即一个类是另一个类的子类;

override和final:

override表示重写基类中的虚函数,final表示一个类或方法不允许被继承或重写

对于纯方法类(只包含纯虚函数的类),通常以interface作为接口

函数:

函数参数顺序:输入参数在前,能用const就用const,输出参数在后。引用参数最好使用const,如果有改变的可能,使用指针更加直白;

函数如果超过40行就要考虑能不能进一步分割

使用模板函数和复杂返回类型时,常用类型后置

注释:

文件开头有版权注释(为了开源和负责)

类注释,让读者知道干了啥

不要的注释:代码已经体现的

格式:

一行80个,不要超过120,正常缩进2个返回类型和函数名通常在一行

tips:

静态变量和全局变量要慎重使用,明确构造和析构顺序

采用modern C++

        auto 

        nullptr

        const,constptr

        前置自增、自减

        能使用只能指针,尽量使用智能指针

指针的传递代表所有权的交接,想清楚谁拥有对象的生命周期

RTTI运行时类型转换 dynamic_cast<**>能不用就不要使用

注释:

智能指针:常见的智能指针包含以下几种

std::unique_ptr、std::shared_ptr、std::weak_ptr

std::unique_ptr表示对对象的独占所有权,即同一时间只能有std::unique_ptr指向某一对象

std::shared_ptr表示对对象的共有所有权,即可以有多个std::shared_ptr指向同一个对象

std::weak_ptr通常与std::shared_ptr配合使用,用一个弱引用,reset来解决std::shared_ptr之间的循环引用问题

原文出处:

Google 代码规范 C++总结 - 知乎

知乎 - 安全中心

仅用作学习记录,侵权请联系

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值