大规模C++程序设计是专为有经验的C++软件的开发者、系统设计师、软件质量保证人员编写的。适合从事大型软件开发工作(如数据库、操作系统、编译程序和框架)的人员阅读。本书将高层设计概念与特定的C++编程细节结合起来,满足下面两个要求:1、一本面向对象设计的书,尤其侧重于C++编程语言实现方面。2、一本c++程序设计的书,描述如何使用C++编程语言来开发非常大型的系统。
目录
- 译者序
- 前 言
- 第0章 概述 1
- 0.1 从C到C++ 1
- 0.2 使用C++开发大型项目 2
- 0.3 重用 9
- 0.4 质量 10
- 0.5 软件开发工具 12
- 0.6 小结 12
- 第一部分 基 础 知 识
- 第1章 预备知识 15
- 1.1 多文件C++程序 15
- 1.2 typedef声明 22
- 1.3 断言语句 22
- 1.4 编程风格 23
- 1.5 迭代器 28
- 1.6 逻辑设计表示法 34
- 1.7 继承与分层 40
- 1.8 最小化 41
- 1.9 小结 42
- 第2章 基本规则 44
- 2.1 概述 44
- 2.2 成员数据访问 45
- 2.3 全局名字空间 48
- 2.4 包含卫哨 56
- 2.5 冗余包含卫哨 58
- 2.6 文档 61
- 2.7 标识符命名规则 63
- 2.8 小结 64
- 第二部分 物理设计概念
- 第3章 组件 69
- 3.1 组件与类 69
- 3.2 物理设计规则 75
- 3.3 依赖关系 83
- 3.4 隐含依赖 86
- 3.5 提取实际的依赖 91
- 3.6 友元关系 93
- 3.7 小结 99
- 第4章 物理层 101
- 4.1 软件测试的一个比喻 101
- 4.2 一个复杂的子系统 102
- 4.3 测试“好”接口的难度 105
- 4.4 可测性设计 107
- 4.5 隔离测试 109
- 4.6 非循环物理依赖 111
- 4.7 层次编号 112
- 4.8 分层和增量测试 117
- 4.9 测试一个复杂子系统 121
- 4.10 可测性与测试 122
- 4.11 循环物理依赖 123
- 4.12 累积组件依赖 124
- 4.13 物理设计质量 128
- 4.14 小结 132
- 第5章 层次化 134
- 5.1 循环物理依赖的一些来源 134
- 5.2 升级 142
- 5.3 降级 149
- 5.4 不透明指针 158
- 5.5 哑数据 164
- 5.6 冗余 171
- 5.7 回调方法 175
- 5.8 管理者类 184
- 5.9 分解 187
- 5.10 升级封装 199
- 5.11 小结 208
- 第6章 隔离 209
- 6.1 从封装到隔离 210
- 6.2 C++结构和编译时耦合 214
- 6.3 局部隔离技术 223
- 6.4 整体的隔离技术 249
- 6.5 过程接口 275
- 6.6 隔离或不隔离 288
- 6.7 小结 304
- 第7章 包 306
- 7.1 从组件到包 306
- 7.2 注册包前缀 312
- 7.3 包层次化 319
- 7.4 包隔离 323
- 7.5 包群 325
- 7.6 发布过程 328
- 7.7 main程序 335
- 7.8 启动 341
- 7.9 小结 351
- 第三部分 逻辑设计问题
- 第8章 组件架构 355
- 8.1 抽象和组件 355
- 8.2 组件接口设计 356
- 8.3 封装程度 359
- 8.4 辅助实现类 368
- 8.5 小结 372
- 第9章 函数设计 374
- 9.1 函数接口说明 374
- 9.2 在接口中使用的基本类型 406
- 9.3 特殊情况函数 415
- 9.4 小结 421
- 第10章 对象实现 425
- 10.1 成员数据 425
- 10.2 函数定义 430
- 10.3 内存管理 439
- 10.4 在大型项目中使用C++模板 466
- 10.5 小结 477
- 附录A 协议层设计模式 480
- 附录B 实现一个与ANSI C兼容的C++接口 501
- 附录C 一个依赖提取器包/分析器包 509
- 附录D 快速参考 531
- 参考文献 546