C++风格指南¶
来源信息
- 原文仓库:github.com/LiteLDev/LeviLamina
- 许可说明:以原仓库或原站点公开许可声明为准。
!!! 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服务关闭后更新此列表。