当前位置:首页 > 工业技术
C++编程惯用法-高级程序员常用方法和技巧
C++编程惯用法-高级程序员常用方法和技巧

C++编程惯用法-高级程序员常用方法和技巧PDF电子书下载

工业技术

  • 电子书积分:10 积分如何计算积分?
  • 作 者:(美)RobertB.Murray编著;王昕翻译
  • 出 版 社:北京:中国电力出版社
  • 出版年份:2004
  • ISBN:7508319125
  • 页数:208 页
图书介绍:本书的目的是帮助C++的新手学习到那些在实践中最有效的惯用法。同时,也会指出那些经常接触到的C++缺陷。在本书中的讨论并不试图覆盖整个语言,那些有关语言语义的精确定义可查阅参考手册。我们主要专注于帮助读者构造出可以被那些不是C++语言专家的人所理解的程序。我们不但讨论了那些使得程序变得优雅及高效的技巧,也展示了如何使得它们更容易被理解和维护的方法。第一章讨论了如何选择一种合适的高阶抽象方式来实现设计,并着重阐述了抽象和其实现之间的区别。后续的两章主要关注于如何在C++的类中实现较高层次的抽象。接下来的三章介绍了继承。第七章和第八章详细地讲解了模板。第九章中讨论了如何把一段可工作代码加入到重用库中:重用的困难程度要远远超过其字面意思。我们在本章中也展示了如何使用前几章中介绍的技巧来提高代码的健壮性、使其更容易使用以及运行得更快。第十章讲述了如何使用异常以及不适合使用它的情况。第十一章中简单讲述了一些有关采用C++开发的项目中经常碰到的技术及人们自身上的问题。
《C++编程惯用法-高级程序员常用方法和技巧》目录

目录 1

代译者序 1

序 1

第0章 简介 1

0.1 关于示例代码 1

0.2 本书的组织 2

0.3 问题 2

0.4 语言规则 3

第1章 抽象 4

1.1 有关电话号码的抽象模型 6

1.2 抽象模型间的关系 7

1.3 请考虑边界条件 12

1.5 小结 13

1.4 使用CRC卡片来辅助设计 13

1.6 问题 14

第2章 类 15

2.1 构造函数 15

2.2 赋值 23

2.3 公用数据 24

2.4 隐式类型转换 28

2.5 操作符重载:成员或非成员? 33

2.6 重载、缺省值以及省略符 36

2.7 Const 37

2.8 返回值为引用 43

2.9 静态对象的构造 44

2.10 小结 45

2.11 问题 46

3.1 一个String类 48

第3章 句柄 48

3.2 使用计数器来避免多份拷贝 50

3.3 避免进行重编译:Cheshire Cat 55

3.4 使用句柄来隐藏设计 56

3.5 多种实现 57

3.6 作为对象的句柄 61

3.7 综述 61

3.8 小结 61

3.9 问题 61

第4章 继承 63

4.1 is-a关系 63

4.2 公有继承 68

4.3 私有继承 68

4.4 保护型继承 70

4.5 与基类抽象的一致性 71

4.6 纯虚函数 73

4.7 有关继承的细节和陷阱 75

4.8 小结 78

4.9 问题 79

第5章 多重继承 80

5.1 作为交集的多重继承 80

5.2 虚基类 85

5.3 一些有关多重继承的细节问题 89

5.4 小结 91

5.5 问题 91

第6章 考虑继承的设计 93

6.1 被保护的接口 93

6.2 我们的设计是否应该考虑到继承? 96

6.3 一些为继承所做的设计的例子 100

6.5 小结 105

6.4 结论 105

6.6 问题 106

第7章 模板 107

7.1 模板类Pair 109

7.2 一些有关模板的细节 110

7.3 模板的实例化 111

7.4 智能指针 113

7.5 作为模板参数的表达式 119

7.6 模板函数 121

7.7 小结 124

7.8 问题 124

第8章 模板的高级用法 126

8.1 使用了模板的容器类 126

8.2 示例:Block 127

8.3 有关Block的设计细节 130

8.4 带有迭代器的容器:List 134

8.5 迭代器的设计细节 141

8.6 性能上的考虑 144

8.7 对模板参数的限制 146

8.8 模板特化 148

8.9 小结 154

8.10 问题 154

第9章 重用 156

9.1 发现和获得 157

9.2 健壮性 158

9.3 内存管理 163

9.4 可选的内存分配方案 165

9.5 传递参数给operator new 168

9.6 管理外部资源 170

9.7 寻找有关内存的bug 171

9.8 名字冲突 175

9.9 性能 178

9.10 不要去猜想,而应该度量! 179

9.11 算法 179

9.12 动态内存分配中的瓶颈 180

9.13 内嵌 185

9.14 Tiemann法则 187

9.15 小结 187

9.16 问题 188

第10章 异常 190

10.1 一个负面的声明 190

10.3 一个异常的例子 192

10.2 为什么需要异常? 192

10.4 异常只应该用来表述异常情况 194

10.5 理解异常 195

10.6 责任评估 196

10.7 设计异常对象 197

10.8 小结 200

10.9 问题 200

第11章 向C++移植 202

11.1 选择使用C++ 202

11.2 采用C++ 203

11.3 设计和实现 204

11.4 开发一个坚实的基础 206

11.5 相关的思考 207

11.6 小结 207

11.7 问题 208

相关图书
作者其它书籍
返回顶部