1 基础 ................................................................................................... 17
1.1 引言 .................................................................................................................................. 17
1.2 程序 .................................................................................................................................. 18
1.2.1 Hello, World! ....................................................................................................... 18
1.3 函数 .................................................................................................................................. 20
1.4 类型、变量与运算 .......................................................................................................... 21
1.4.1 算术运算 ............................................................................................................. 23
1.4.2 初始化 ................................................................................................................. 24
1.5 作用域和生命周期 .......................................................................................................... 25
1.6 常量 .................................................................................................................................. 26
1.7 指针、数组和引用 .......................................................................................................... 27
1.7.1 空指针 ................................................................................................................. 29
1.8 检验 .................................................................................................................................. 30
1.9 映射到硬件 ...................................................................................................................... 32
1.9.1 赋值 ..................................................................................................................... 33
1.9.2 初始化 ................................................................................................................. 34
1.10 建议 ................................................................................................................................ 35
2 用户自定义类型 ..................................................................................... 37
2.1 引言 .................................................................................................................................. 37
2.2 结构 .................................................................................................................................. 38
2.3 类 ...................................................................................................................................... 39
2.4 枚举 .................................................................................................................................. 41
2.5 联合 .................................................................................................................................. 43
2.6 建议 .................................................................................................................................. 44
3 模块化 ............................................................................................... 45
3.1 引言 .................................................................................................................................. 45
3.2 分离编译 .......................................................................................................................... 46
3.2.1 头文件 ................................................................................................................. 47
3.2.2 模块 ..................................................................................................................... 49
3.3 命名空间 .......................................................................................................................... 51
3.4 函数参数与返回值 .......................................................................................................... 53
3.4.1 参数传递 ............................................................................................................. 54
3.4.2 返回值 ................................................................................................................. 55
3.4.3 返回类型推导 ..................................................................................................... 56
3.4.4 返回类型后置 ..................................................................................................... 56
3.4.5 结构化绑定 ......................................................................................................... 57
3.5 建议 .................................................................................................................................. 58
4 错误处理 ............................................................................................ 59
4.1 引言 .................................................................................................................................. 59
4.2 异常 .................................................................................................................................. 60
4.3 约束条件 .......................................................................................................................... 61
4.4 错误处理的其他替代方式 .............................................................................................. 63
4.5 断言 .................................................................................................................................. 64
4.5.1 assert() ................................................................................................................. 65
4.5.2 static_assert .......................................................................................................... 66
4.5.3 noexcept ............................................................................................................... 66
4.6 建议 .................................................................................................................................. 67
5 类 ..................................................................................................... 69
5.1 引言 .................................................................................................................................. 69
5.1.1 类的概述 ............................................................................................................. 70
5.2 具体类型 .......................................................................................................................... 70
5.2.1 一种算术类型 ..................................................................................................... 71
5.2.2 容器 ..................................................................................................................... 73
5.2.3 容器的初始化 ..................................................................................................... 74
5.3 抽象类型 .......................................................................................................................... 76
5.4 虚函数 .............................................................................................................................. 78
5.5 类层次结构 ...................................................................................................................... 79
5.5.1 类层次结构的益处 ............................................................................................. 81
5.5.