【C++】 C/C++通用编程重点规范整理

空格

  1. 使用空格进行缩进,每次缩进4个空格
只允许使用空格(space)进行缩进,每次缩进为 4 个空格。不允许使用Tab符进行缩进。 当前几乎所有的集成开发环
境(IDE)都支持配置将Tab符自动扩展为4空格输入;请配置你的IDE支持使用空格进行缩进。

水平空格

水平空格应该突出关键字和重要信息,每行代码尾部不要加空格。

总体规则如下:

  1. if, switch, case, do, while, for等关键字之后加空格
    1. 例如:if 空格 () 空格 { }
  2. 小括号内部的两侧,不要加空格;
  3. 大括号内部两侧有无空格,左右必须保持一致;
  4. 一元操作符(& * + ‐ ~ !)之后不要加空格;
    1. 前置和后置的自增、自减(++ --)和变量之间不加空格
    2. 结构体成员操作符(. ->)前后不加空格
    3. 逗号(,)前面不加空格,后面增加空格
    4. 对于模板和类型转换(<>)和类型之间不要添加空格
    5. 域操作符(::)前后不要添加空格
    6. 冒号(:)前后根据情况来判断是否要添加空格
  5. 二元操作符(= + ‐ < > * / % | & ^ <= >= == != )左右两侧加空格
  6. 三目运算符(? :)符号两侧均需要空格

if / else

1. if 必须使用大括号
2. 禁止if/else/else if写在同一行

指针和引用

1. 指针类型" * "& 跟随变量名或者类型,不要两边都留有或者都没有空,都可以

1. 类访问控制块的声明依次序是 public:, protected:, private:,缩进和 class 关键字对齐
2. 类的成员变量必须显式初始化
3. 必须声明时初始化(C++11),其次构造函数初始化列表

重点规范:
避免隐式转换,将单参数构造函数声明为explicit
1. 单个形式参数的构造函数如果没有用explicit声明,则会成为隐式转换函数
2. explicit组织不应该允许的经过转华构造函数进行的隐式转换的放生
3. explicit用于类型转换操作符重载函数时,阻止隐士向目标类型转换
4. 不可以被子类继承

**C++隐式类型转换:**是从 构造函数形参类型 到 该类类型 的一个编译器的自动转换。
用 单个形参来调用 的构造函数定义了从 形参类型 到 该类类型 的一个隐式转换
https://www.cnblogs.com/QG-whz/p/4472566.html

class Foo {
   
public:
    explicit Foo(const string& name): name(name) {
   }
private:
    string name;
}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值