Google C++ Style Guide
238.71 KB
83 页
0 评论
语言 | 格式 | 评分 |
---|---|---|
英语 | .pdf | 3 |
摘要 | ||
文档详细描述了Google的C++编码风格指南,涵盖了命名规则、操作符使用、注释风格、类声明顺序等方面。其目标是通过一系列规则和约定,确保代码的可读性和可维护性。指南强调了命名的重要性,确保代码自文档化,并提供了具体的编码建议,如变量、类型和函数的命名约定,操作符的使用风格,以及注释的撰写原则。 | ||
AI总结 | ||
# 《Google C++ Style Guide》中文总结
## 导言
Google的C++编码风格指南旨在管理C++代码的复杂性,通过详细描述编码规范来提高代码的可读性和可维护性。这些规范适用于Google的开源项目,主要目标是保持代码一致性,同时允许开发者高效使用C++语言特性。
## 编码规范
### 1. 运算符重载
- 避免重载 `&&`、`||`、`,`、`&`、`operator""` 等运算符。
- 类型转换运算符、`=` 运算符、`<<` 运算符等的使用有专门规则。
### 2. 访问控制
- 类的数据成员应为私有(`private`),除非是静态常量(`static const`)。
- 测试fixture类的数据成员可为受保护(`protected`)。
### 3. 声明顺序
- 类定义中,声明顺序依次为 `public:`、`protected:`、`private:`。
- 每个部分内的声明顺序包括:
- `using` 声明、`typedef` 和 `enum`。
- 常量(静态常量)。
- 构造函数和赋值运算符。
- 析构函数。
- 方法(包括静态方法)。
- 数据成员(除静态常量外)。
- 禁止在类定义中内联定义大型函数。
### 4. 函数参数顺序
- 输入参数在前,输出参数在后。
- 连接词(如 `&&`)通常放在行末。
- 适当添加括号以提高可读性。
### 5. 返回值
- 避免不必要的括号包围返回表达式。
- 在复杂表达式中适当使用括号。
### 6. 变量和数组初始化
- 可以选择 `=`, `()`, 或 `{}` 进行初始化。
- 使用大括号初始化时注意 `std::initializer_list` 构造函数的优先级。
### 7. 空格和符号
- 操作符周围(如 `=`, `+`, `*`)留空格。
- 单行注释使用 `//`,多行注释使用 `/* */`。
- 避免在大括号内留空格。
- 尽量避免过多的垂直空白行。
### 8. 模板和强制类型转换
- 模板角括号 `<` 和 `>` 内无空格。
- 强制类型转换(如 `static_cast`)格式一致。
## 注释
### 1. 文件注释
- 每个文件以许可证 boilerplate 开头。
- 文件注释简要描述文件内容。
- 如果文件只涉及一个已有注释的抽象接口,则无需文件注释。
### 2. 类和函数注释
- 使用清晰的注释解释代码逻辑。
- 写注释时以后续开发者为读者。
## 命名规则
### 1. 类型命名
- 类型名称(如类、结构体、枚举等)首字母大写,使用驼峰式命名(如 `MyExcitingClass`)。
- 避免使用下划线。
### 2. 变量命名
- 变量名全小写,单词间用下划线分隔(如 `a_local_variable`)。
- 类数据成员(非结构体)以单下划线结尾(如 `a_class_data_member_`)。
### 3. 枚举命名
- 枚举值以常量或宏的形式命名:
- `kEnumName`(推荐)。
- `ENUM_NAME`。
- 避免因宏冲突导致的旧式命名问题。
### 4. 宏命名
- 避免使用宏,若必须使用,则大写并用下划线分隔(如 `MY_MACRO`)。
### 5. 兼容性示例
- 使用命名约定表明类型的兼容性(如 `using DataPoint = foo::bar::Bar*;`)。
## 其他规则
- 减少不必要的垂直空白行。
- 确保代码自解释,优先通过清晰的命名减少注释需求。
通过以上规范,Google的C++ Style Guide 试图在代码可读性、可维护性和一致性之间找到平衡,确保代码更易于协作和维护。 |
P1
P2
P3
P4
P5
P6
P7
下载文档到本地,方便使用
- 可预览页数已用完,剩余
76 页请下载阅读 -
文档评分