《C++编程风格》讲解了C++语言中较深层次的程序设计思想和使用方法,包含大量的软件工程概念和设计模式,重点介绍大规模编程相关的内容,例如增加代码的可读性、可维护性、可扩展性以及提高代码执行效率等的方法。《C++编程风格》的示例代码都是从实际程序中抽取出来的,作者通过对这些代码进行分析,讲解了如何正确地编写代码以及避开一些常见的误区和陷阱,并提炼出了一些关于程序设计风格和编码风格的规则。如果开发人员在编程时能够遵循这些规则,将有助于开发出更好的C++程序。
......(更多)
......(更多)
1 抽象 1
1.1 编程风格示例:计算机的定价 1
1.2 找出共同的抽象 5
1.3 类之间的区别 9
1.4 属性与行为 9
1.5 再次引入继承 12
1.6 去掉枚举 13
小结 16
参考文献 17
练习 17
2 一致性 21
2.1 编程风格示例:string类 21
2.2 明确定义的状态 23
2.3 物理状态的一致性 24
2.4 类不变性 25
2.5 动态内存的一致性 27
2.6 动态内存的回收 28
2.7 编程风格示例:第二种方法 29
小结 35
参考文献 36
练习 36
3 不必要的继承 41
3.1 编程风格示例:堆栈 41
3.2 继承作用域准则 44
3.3 继承关系 46
3.4 封装 50
3.5 接口与实现 52
3.6 模板 56
小结 58
参考文献 58
练习 58
4 虚函数 59
4.1 编程风格示例:车辆与车库 59
4.2 一致性 63
4.3 基类的析构函数 65
4.4 继承 66
4.5 耦合 69
小结 75
参考文献 75
练习 75
5 运算符的重载 77
5.1 运算符重载的基本概念 77
5.2 编程风格示例:FileArray类 82
5.3 对实现的继承 89
5.4 程序设计中的权衡:重载运算符和成员函数 94
小结 95
参考文献 96
练习 96
6 包装 97
6.1 一个用C编写的库 97
6.2 编程风格示例:用C++对dirent进行包装 98
6.3 多个Directory对象 100
6.4 构造函数中的失败 103
6.5 对失败状态的公有访问 105
6.6 错误信息参数 107
小结 111
参考文献 111
练习 111
7 效率 113
7.1 编程风格示例:BigInt类 114
7.2 BigInt的使用 120
7.3 动态字符串的长度 121
7.4 动态字符串的数量 123
7.5 客户代码 127
7.6 改写BigInt 129
小结 135
参考文献 135
练习 135
8 案例研究 137
8.1 编程风格示例:有限状态机 137
8.2 初始化 142
8.3 耦合 150
8.4 内聚 154
8.5 模块类与抽象数据类型 157
8.6 属性与行为 160
8.7 泛化 165
参考文献 169
练习 170
9 多重继承 171
9.1 多重继承中的二义性 171
9.2 有向无环继承图 173
9.3 分析虚基类 176
9.4 编程风格示例:Monitor类 183
9.5 编程风格示例:虚基类 187
9.6 多重协议继承 192
小结 195
参考文献 195
练习 195
10 摘要 199
第1章:抽象 199
第2章:一致性 199
第3章:不必要的继承 200
第4章:虚函数 200
第5章:运算符的重载 201
第6章:包装 201
第7章:效率 201
第8章:案例研究 202
第9章:多重继承 202
......(更多)
1、将共同的抽象提取出来并放到基类中 2、一个类应该能够描述一组对象(避免过于特化)。 3、如果派生类之间的区别在于属性,则用数据成员来表示;如果在于行为,则用虚函数来表示 4、如果通过公有集成来产生派生类,那么这个派生类应该是其基类的特化。 5、多态并不是所有程序设计问题的解决方案
构造函数应该使得对象处于明确定义的状态
......(更多)