资源名称:C++沉思录 PDF
0.1 第一次尝试 1
0.1.1 改进 2
0.1.2 另一种改进 3
0.2 不用类来实现 4
0.3 为什么用C++更简单 5
0.4 一个更大的例子 6
0.5 结论 6
第一篇 动机
第1章 为什么我用C++ 11
1.1 问题 11
1.2 历史背景 12
1.3 自动软件发布 12
1.3.1 可靠性与通用性 13
1.3.2 为什么用C 14
1.3.3 应付快速增长 15
1.4 进入C++ 15
1.5 重复利用的软件 20
1.6 后记 21
第2章 为什么用C++工作 23
2.1 小项目的成功 23
2.1.1 开销 24
2.1.2 质疑软件工厂 24
2.2 抽象 25
2.2.1 有些抽象不是语言的一部分 26
2.2.2 抽象和规范 26
2.2.3 抽象和内存管理 27
2.3 机器应该为人服务 28
第3章 生活在现实世界中 29
第二篇 类和继承
第4章 类设计者的核查表 37
第5章 代理类 47
5.1 问题 47
5.2 经典解决方案 48
5.3 虚复制函数 49
5.4 定义代理类 50
5.5 小结 53
第6章 句柄:第一部分 55
6.1 问题 55
6.2 一个简单的类 56
6.3 绑定到句柄 58
6.4 获取对象 58
6.5 简单的实现 59
6.6 引用计数型句柄 60
6.7 写时复制 62
6.8 讨论 63
第7章 句柄:第二部分 67
7.1 回顾 68
7.2 分离引用计数 69
7.3 对引用计数的抽象 70
7.4 存取函数和写时复制 73
7.5 讨论 73
第8章 一个面向对象程序范例 75
8.1 问题描述 75
8.2 面向对象的解决方案 76
8.3 句柄类 79
8.4 扩展1:新操作 82
8.5 扩展2:增加新的节点类型 85
8.6 反思 86
第9章 一个课堂练习的分析(上) 89
9.1 问题描述 89
9.2 接口设计 91
9.3 补遗 93
9.4 测试接口 94
9.5 策略 95
9.6 方案 96
9.7 图像的组合 99
9.8 结论 102
第10章 一个课堂练习的分析(下) 103
10.1 策略 103
10.1.1 方案 104
10.1.2 内存分配 105
10.1.3 结构构造 107
10.1.4 显示图像 110
10.2 体验设计的灵活性 116
10.3 结论 119
第11章 什么时候不应当使用虚函数 121
11.1 适用的情况 121
11.2 不适用的情况 122
11.2.1 效率 122
11.2.2 你想要什么样的行为 125
11.2.3 不是所有的类都是通用的 127
11.3 析构函数很特殊 127
11.4 小结 129
第三篇 模板
第12章 设计容器类 133
12.1 包含什么 133
12.2 复制容器意味着什么 134
12.3 怎样获取容器的元素 137
12.4 怎样区分读和写 138
12.5 怎样处理容器的增长 139
12.6 容器支持哪些操作 141
12.7 怎样设想容器元素的类型 141
12.8 容器和继承 143
12.9 设计一个类似数组的类 144
第13章 访问容器中的元素 151
13.1 模拟指针 151
13.2 获取数据 153
13.3 遗留问题 155
13.4 指向const Array的Pointer 159
13.5 有用的增强操作 161
第14章 迭代器 167
14.1 完成Pointer类 167
14.2 什么是迭代器 170
资源截图:
评论(0)