代码规范 / 书写习惯

头文件

  • 分四部分依次排列
    1. cpp 文件对应的头文件
    2. 自己的头文件
    3. 第三方库的头文件
    4. 标准库
  • 第三方库用 <> 自己的头文件用 “”
  • 按字典序排序
  • 清理不必要的头文件
  • C++ 便准库头文件不带扩展名,C 头文件带 .h,C++ 程序中尽量用 C++ 头文件

大括号

  • 不要省略单行代码的大括号
  • 命名空间大括号向左缩进
  • 命名空间右大括号后跟注释

命名规范

  • 成员函数首字母大写
  • 成员变量 - m_
  • 指针 - p_
  • 静态变量 - s_
  • 常量 - 全大写
  • 数组等容器中的元素数量 - number
  • 累计值 - count
  • 字节数 - size
  • 字符串长度 - length

注释

  • // 前后加空格
  • 多行注释每行开头加 *
  • 首字母大写
  • 除非是长篇的描述,否则不加句号
  • does not instead of doesn’t
  • 公式之类非英文的部分用 `` 括起来
  • // TODO: Do something

其他

  • 使用 int16_t 而非 short,使用 uint32_t 而非 unsigned int
  • 前向声明
  • final
  • 成员可访问级别
  • 三五法则
  • 提供参数为右值的重载函数,传值就完事了,实现内再 move
  • 将参数作为索引时用 const T&,当 sizeof(T) < 8 时不用 &
  • 用 const 修饰 this 指针
  • 用 string_view 代替 string
  • 尽量用 assert 代替 if check log,C++ 最好的错误检查就是崩在一个合理的地方