目录 1
译者序 1
序言 1
第1章 引言 1
1.1 C++语言演变的历史 1
1.2 处理复杂结构的习惯用法 2
1.3 对象 3
1.4 设计和语言 3
练习 4
第2章 数据抽象和抽象数据类型 5
2.1 类 6
2.2 对象转换 8
2.3 构造函数和析构函数 9
2.4 内联(inline)函数 13
2.5 静态数据成员的初始化 14
2.6 作用域和const 15
2.7 全局对象、常数和静态类 16
成员初始化次序 16
2.8 类对象成员函数的const执行 17
2.9 指向成员函数的指针 19
2.10 程序组织的习惯约定 22
练习 23
第3章 具体数据类型 24
3.1 传统规范类格式 24
3.2 作用域和访问控制 29
3.3 重载:重定义操作和函数的语义 31
3.4 类型转换 34
变量 37
3.5 引用计数:使用“可调内存” 37
3.6 操作符new和delete 48
3.7 把初始化从实例化中分离出来 52
练习 55
第4章 继承性 57
4.1 简单继承 58
4.2 作用域和访问控制 63
4.3 构造函数和析构函数 71
4.4 类指针转换 73
4.5 类型选择域 74
练习 76
第5章 面向对象程序设计 78
5.1 C++运行时类型支持:虚拟函数 79
5.2 虚拟析构函数 84
5.3 虚拟函数和作用域 85
5.4 纯虚拟函数和抽象基类 87
5.5 信封和信件类 88
5.6 功能元件:作为对象的函数 110
5.7 多重继承 120
5.8 继承的规范格式 127
5.9 例子 130
练习 134
第6章 面向对象设计 135
6.1 类型和类 135
6.2 面向对象设计的实践活动 138
6.3 面向对象分析和领域分析 139
6.4 对象和类的关系 141
6.5 子类型、继承和转发 147
经验规则 161
6.6 子类型、继承和独立性的 161
练习 162
第7章 重用和对象 163
7.1 所有模拟的分解放到何处 164
7.2 设计重用 165
7.3 4种代码重用机制 166
7.4 参数化类型或模板 168
7.5 私有继承:继承支持重用吗 174
7.6 存储重用 176
7.7 接口重用:变体 177
7.8 重用、继承和转发 178
7.9 源代码重用结构的选择 179
7.10 在重用和对象上的概括 181
练习 182
第8章 C++中的样本程序设计 183
8.1 雇员样本的例子 185
8.2 样本和类属构造函数: 189
样本共用的习惯用法 189
8.3 自主的类属构造函数 190
8.4 抽象基样本 191
8.5 关于样本习惯用法框架 193
8.6 相关的表示 195
8.7 样本和程序的管理 196
练习 197
第9章 在C++中模拟符号语言的风格 202
9.1 增量式C++开发 203
9.2 符号规范格式 204
9.3 通用收集类的例子 212
9.4 支持增量装入的代码和习惯用法 216
9.5 垃圾收集 223
9.6 基本类型的封装 230
9.7 在符号习惯用法下的多重方法 230
练习 233
第10章 动态多重继承 234
10.1 多重技术窗口系统的例子 235
10.2 防止误解的说明 237
练习 238
第11章 系统性问题 239
11.1 静态系统设计 239
11.2 动态系统设计 245
练习 254
附录A C++环境中的C 255
A.1 函数调用 255
A.3 函数原型 256
A.2 函数参数表 256
A.4 调用引用参数 257
A.5 参数个数不定 259
A.6 函数指针 261
A.7 const类型说明符 262
A.8 C代码的接口 264
A.9 操作符引用返回值 271
练习 273
附录B Shapes程序的C++代码 274
附录C 符号的Shapes 284
附录D C++中块结构程序设计 311
D.1 什么是块结构程序设计 311
D.2 构造基本块结构的C++程序设计 312
D.3 有深度嵌套作用域块的选择 314
D.4 块结构的视频游戏代码 317