pdf文档 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 页请下载阅读 -
文档评分
请文明评论,理性发言.