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 摘要第1章:抽象第2章:一致性第3章:不必要的继承第4章:虚函数第5章:运算符的重载第6章:包装第7章:效率第8章:案例研究第9章:多重继承……