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章:多重继承
……
展开