跳转至

C++风格指南

来源信息

!!! note "关于此页面" 本文整理自LeviLamina官方C++风格指南。若与原文存在冲突,以原文为准。

命名

目录名

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

文件名

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

类型名称

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

变量名

常用变量名

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

类和结构体数据成员

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

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

常量名称

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

函数名称

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

命名空间名称

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

枚举名称

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

宏定义名称

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

注释

注释风格

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

文件注释

在每个文件开头添加许可证模板。

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

结构体和类注释

每个不容易一眼看懂的类或结构体声明,都应附带注释,说明其用途和使用方式,至少包括简要介绍和公有属性说明。

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

函数注释

函数注释至少应包括简要介绍、参数与返回值说明,以及异常说明。

变量注释

类数据成员

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

全局变量

所有全局变量都应有注释,说明它们是什么、用于什么,以及在必要时为什么必须是全局变量。

实现注释

使用第三人称叙述。

函数参数注释

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

TODO注释

TODO应使用全大写的TODO,后接议题编号和TODO所引用内容的描述,例如// TODO(#1234): 在Foo服务关闭后更新此列表。