出版社:人民邮电出版社
年代:2015
定价:39.0
本书讲解了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
《C++编程风格(修订版)》讲解了C++语言中较深层次的程序设计思想和使用方法,包含大量的软件工程概念和设计模式,重点介绍大规模编程相关的内容,例如增加代码的可读性、可维护性、可扩展性以及提高代码执行效率等的方法。《C++编程风格(修订版)》的示例代码都是从实际程序中抽取出来的,作者通过对这些代码进行分析,讲解了如何正确地编写代码以及避开一些常见的误区和陷阱,并提炼出了一些关于程序设计风格和编码风格的规则。如果开发人员在编程时能够遵循这些规则,将有助于开发出更好的C++程序。
《C++编程风格(修订版)》描述平实,示例丰富,适合有一定编程经验的计算机程序设计与开发人员参考。
(美) 卡吉尔 (Cargill,T.) , 著
(美) 卡吉尔 (Cargill,T.) , 著
(美) 米斯菲尔特 (Misfeldt,T.) , (美) 布姆加德纳 (Bumgardner,G.) , (美) 格雷 (Gray,A.) , 著
(美) 施密特 (Schmidt,D.C.) , (美) 休斯顿 (Huston,S.D.) , 编著
(美) 索尔特, (美) 凯乐普, 著
(加) 萨特 (Sutter,H.) , (罗) 亚历山德雷斯库 (Alexandrescu,A.) , 著
(美) 格莱戈尔 (Gregoire,M.) , (美) 凯乐普 (Kleper,S.J.) , 著
(美) 萨特 (Sutter,H.) , 著
(美) 赫勒 (Heller,S.) , 著