C++非常适于大规模编程,因此,对C++编程风格的讨论就超出了小规模编程所涉及的范围。本书对如何使用C++的大规模编程特性进行了详细的介绍,这些特性不易掌握,有时候甚至连经验丰富的程序员也难免出错。作者在书中还指出,如果我们没有正确地使用某种功能强大的语言特性,那么可能编写出糟糕的程序,这些程序甚至可能比那些使用简单方法编写的程序更加难以理解和低效。本书对多个示例程序进行了重新编写以改正程序中的问题,其中使用的技术包括:提高程序的一致性、去掉冗余的继承等。本书对程序的分析过程是模拟代码复查的方法,读者可以对同一问题的各种不同解决方法分别进行评价与判断,然后将这些分析与作者给出的分析加以比较。
本书从示例程序中提炼出了一些关于设计风格与编码风格的规则。如果透彻理解了这些规则,并且在编程时能够遵循这些规则,那么将有助于程序员编写出更好的C++程序。
本书描述C++语言中较深层次的程序设计思想和使用方法,包含大量软件工程概念和设计模式,重点介绍大规模编程相关的内容,例如增加代码的可读性、可维护性、可扩展性以及执行效率等的方法。本书的示例代码都是从实际程序中抽取出来的,融入了作者的实际开发经验。讲解如何正确地编写代码以及避开一些常见的误区和陷阱,并给出了许多实用的编程规则,可快速提升读者的C++编程功力。
本书描述平实,示例丰富,适合有一定编程经验的计算机程序设计与开发人员参考。
译者序
前言
第0章 概述
参考文献
第1章 抽象
1.1 编程风格示例:计算机的定价
1.2 找出共同的抽象
1.3 类之间的区别
1.4 属性与行为
1.5 再次引入继承
1.6 去掉枚举
小结
参考文献
练习
第2章 一致性
2.1 编程风格示例:string类
2.2 明确定义的状态
2.3 物理状态的一致性
2.4 类不变性
2.5 动态内存的一致性
2.6 动态内存的回收
2.7 编程风格示例:第二种方法
小结
参考文献
练习
第3章 不必要的继承
3.1 编程风格示例:堆栈
3.2 继承作用域准则
3.3 继承关系
3.4 封装
3.5 接口与实现
3.6 模板
小结
参考文献
练习
第4章 虚函数
4.1 编程风格示例:车辆与车库
4.2 一致性
4.3 基类的析构函数
4.4 继承
4.5 耦合
小结
参考文献
练习
第5章 运算符的重载
5.1 运算符重载的基本概念
5.2 编程风格示例:FileArray类
5.3 对实现的继承
5.4 程序设计中的权衡:重载运算符和成员函数
小结
参考文献
练习
第6章 包装
6.1 一个用C编写的库
6.2 编程风格示例:用C++对dirent进行包装
6.3 多个Directory对象
6.4 构造函数中的失败
6.5 对失败状态的公有访问
6.6 错误信息参数
小结
参考文献
练习
第7章 效率
7.1 编程风格示例:BigInt类
7.2 BigInt的使用
7.3 动态字符串的长度
7.4 动态字符串的数量
7.5 客户代码
7.6 改写BigInt
小结
参考文献
练习
第8章 案例研究
8.1 编程风格示例:有限状态机
8.2 初始化
8.3 耦合
8.4 内聚
8.5 模块类与抽象数据类型
8.6 属性与行为
8.7 泛化
参考文献
练习
第9章 多重继承
9.1 多重继承中的二义性
9.2 有向无环继承图
9.3 分析虚基类
9.4 编程风格示例:Monitor类
9.5 编程风格示例:虚基类
9.6 多重协议继承
小结
参考文献
练习
第10章 规则总结