Google C++ style初次学习


C++ 风格指南 - 内容目录

Contents

C++ 风格指南 - 内容目录
0. 扉页
0.1 译者前言
0.2 背景
1. 头文件
1.1. Self-contained 头文件
1.2. #define 保护
1.3. 前置声明
1.4. 内联函数
1.5. #include 的路径及顺序
译者 (YuleFox) 笔记
译者(acgtyrant)笔记
2. 作用域
2.1. 名字空间
2.1.1. 匿名名字空间
2.1.2. 具名的名字空间
2.2. 嵌套类
2.3. 非成员函数、静态成员函数和全局函数
2.4. 局部变量
2.5. 静态和全局变量
译者 (YuleFox) 笔记
译者(acgtyrant)笔记
3. 类
3.1. 构造函数的职责
3.2. 初始化
3.3. 显式构造函数
3.4. 可拷贝类型和可移动类型
3.5. 委派和继承构造函数
3.6. 结构体 VS. 类
3.7. 继承
3.8. 多重继承
3.9. 接口
3.10. 运算符重载
3.11. 存取控制
3.11. 声明顺序
3.12. 编写简短函数
译者 (YuleFox) 笔记
4. 来自 Google 的奇技
4.1. 所有权与智能指针
4.2. cpplint
译者(acgtyrant)笔记
5. 其他 C++ 特性
5.1. 引用参数
5.2. 右值引用
5.3. 函数重载
5.4. 缺省参数
5.5. 变长数组和 alloca()
5.6. 友元
5.7. 异常
5.8. 运行时类型识别
5.9. 类型转换
5.10. 流
5.11. 前置自增和自减
5.12. const 用法
5.13. constexpr 用法
5.14. 整型
5.15. 64 位下的可移植性
5.16. 预处理宏
5.17. 0, nullptr 和 NULL
5.18. sizeof
5.19. auto
5.20. 列表初始化
5.21. Lambda 表达式
5.22. 模板元编程
5.23. Boost 库
5.24. C++11
译者(acgtyrant)笔记
6. 命名约定
6.1. 通用命名规则
6.2. 文件命名
6.3. 类型命名
6.4. 变量命名
6.5. 常量命名
6.6. 函数命名
6.7. 名字空间命名
6.8. 枚举命名
6.9. 宏命名
6.10. 命名规则的特例
译者(acgtyrant)笔记
7. 注释
7.1. 注释风格
7.2. 文件注释
7.3. 类注释
7.4. 函数注释
7.5. 变量注释
7.6. 实现注释
7.7. 标点, 拼写和语法
7.8. TODO 注释
7.9. 弃用注释
译者 (YuleFox) 笔记
8. 格式
8.1. 行长度
8.2. 非 ASCII 字符
8.3. 空格还是制表位
8.4. 函数声明与定义
8.5. Lambda 表达式
8.6. 函数调用
8.7. 列表初始化格式
8.8. 条件语句
8.9. 循环和开关选择语句
8.10. 指针和引用表达式
8.11. 布尔表达式
8.12. 函数返回值
8.13. 变量及数组初始化
8.14. 预处理指令
8.15. 类格式
8.16. 构造函数初始值列表
8.17. 名字空间格式化
8.18. 水平留白
8.19. 垂直留白
译者 (YuleFox) 笔记
译者(acgtyrant)笔记
9. 规则特例
9.1. 现有不合规范的代码
9.2. Windows 代码
10. 结束语

对于单参数、有默认参数的构造函数,使用explicit关键字?
     这叫做显示构造函数,参阅3.3。

C++没有super关键字?
     是的,因为C++支持多继承,那么super指谁呢?
     那么如何调用父类的方法?只能使用

如何检查代码风格?
     使用cpplint.py

友元?

猜你喜欢

转载自blog.csdn.net/batmancn/article/details/51670855