跳转至

C++ 风格指南

命名

目录名

使用 小蛇式 命名法 例如: my_directory

文件名

使用 大驼峰 命名法, 例如: MyFile.cpp。 对于单个类文件,文件名应该与类名一致。

类型名称

使用 大驼峰 命名法, 例如: MyClass。 所有类型(包括类、结构、类型别名、枚举和类型模板参数)的名称都应遵循此规则

变量名

常用变量名

使用 小驼峰 命名法, 例如: myVariable

类和结构数据成员

对于私有成员使用 匈牙利 命名法, 例如: mMyMember

对于公开成员使用 小驼峰 命名法, 例如: myMember

常量名称

使用 大驼峰 命名法, 例如: MyConst

函数名称

使用 小驼峰 命名法, 例如: myFunction

命名空间名称

使用 小蛇式 命名法, 例如: my_namespace

枚举名称

使用 大驼峰 命名法, 例如: MyEnumerator

宏定义名称

使用 大蛇式 命名法, 例如: MY_MACRO

注释

注释风格

  • 使用 // ... 表示行尾注释。
  • 使用 /* ... */ 用于行中注释。
  • 使用 /// ... 表示 Doxygen 注释。

文件注释

在每个文件的开头使用许可证模板。

如果一个源文件(如 .h 文件)声明了多个面向用户的抽象(常用函数、相关类等),请在注释中说明这些抽象的集合。

结构和类注释

每个非显而易见的类或结构体声明都应附有注释,说明其用途和使用方法,至少包括简要介绍和公有属性说明。

对于分离的类,例如:.h.cpp,注释应与头文件放在一起。

函数注释

至少包括简要介绍、参数和返回值描述以及异常描述。

变量的注释

类数据成员

所有公共成员都应有注释。

全局变量

所有全局变量都应有注释,说明它们是什么,有什么用途,以及(如果不清楚)为什么要全局化。

实现注释

使用第三人称叙述。

函数参数注释

如果函数参数不清楚,应添加注释,例如: /*count=*/

TODO 注释

TODO 应包括大写的 TODO 字符串,之后是问题 ID 和 TODO 引用的描述。
例如:// TODO(#1234): 在 Foo 服务关闭后更新此列表。