C++沉思录
全新正版 极速发货
¥
56.28
6.3折
¥
89
全新
库存9件
作者(美)安德鲁·凯尼格,(美)芭芭拉·摩尔
出版社人民邮电出版社
ISBN9787115521262
出版时间2020-08
装帧平装
开本16开
定价89元
货号1202147804
上书时间2024-09-04
商品详情
- 品相描述:全新
- 商品描述
-
目录
第0章序幕1
0.1第一次尝试1
0.2不用类来实现4
0.3为什么用C更简单5
0.4一个更大的例子5
0.5小结6
第一篇动机
第1章为什么我用C9
1.1问题9
1.2历史背景10
1.3自动软件发布10
1.4进入C13
1.5重复利用的软件17
1.6后记18
第2章为什么用C工作19
2.1小项目的成功19
2.2抽象21
2.3机器应该为人服务23
第3章生活在现实世界中25
第二篇类和继承
第4章类设计者的核查表31
第5章代理类39
5.1问题39
5.2经典解决方案40
5.3虚复制函数41
5.4定义代理类42
5.5小结44
第6章句柄:第一部分45
6.1问题45
6.2一个简单的类46
6.3绑定到句柄47
6.4获取对象48
6.5简单的实现48
6.6引用计数型句柄49
6.7写时复制51
6.8讨论52
第7章句柄:第二部分55
7.1回顾56
7.2分离引用计数57
7.3对引用计数的抽象58
7.4存取函数和写时复制61
7.5讨论61
第8章一个面向对象程序范例63
8.1问题描述63
8.2面向对象的解决方案64
8.3句柄类67
8.4扩展1:新操作69
8.5扩展2:增加新的节点类型72
8.6反思73
第9章一个课堂练习的分析(上)75
9.1问题描述75
9.2接口设计77
9.3补遗79
9.4测试接口80
9.5策略81
9.6方案81
9.7图像的组合85
9.8小结87
第10章一个课堂练习的分析(下)89
10.1策略89
10.2体验设计的灵活性102
10.3小结105
第11章什么时候不应当使用虚函数107
11.1适用的情况107
11.2不适用的情况108
11.3析构函数很特殊113
11.4小结114
第三篇模板
第12章设计容器类117
12.1包含什么117
12.2复制容器意味着什么118
12.3怎样获取容器的元素121
12.4怎样区分读和写121
12.5怎样处理容器的增长123
12.6容器支持哪些操作124
12.7怎样设想容器元素的类型124
12.8容器和继承125
12.9设计一个类似数组的类126
第13章访问容器中的元素131
13.1模拟指针131
13.2获取数据132
13.3遗留问题135
13.4指向const Array的Pointer139
13.5有用的增强操作140
第14章迭代器145
14.1完成Pointer类145
14.2什么是迭代器148
14.3删除元素149
14.4删除容器150
14.5其他设计考虑151
14.6讨论151
第15章序列153
15.1技术状况153
15.2基本的传统观点154
15.3增加一些额外操作159
15.4使用范例162
15.5再增加一些166
15.6请你思考167
第16章作为接口的模板169
16.1问题169
16.2第一个例子170
16.3分离迭代方式170
16.4遍历任意类型172
16.5增加其他类型173
16.6将存储技术抽象化174
16.7实证177
16.8小结178
第17章模板和泛型算法179
17.1一个特例180
17.2泛型化元素类型180
17.3推迟计数181
17.4地址独立性183
17.5查找非数组184
17.6讨论185
第18章泛型迭代器187
18.1一个不同的算法187
18.2需求的分类189
18.3输入迭代器190
18.4输出迭代器190
18.5前向迭代器191
18.6双向迭代器191
18.7随机存取迭代器192
18.8是继承吗193
18.9性能193
18.10小结194
第19章使用泛型迭代器195
19.1迭代器类型196
19.2虚拟序列196
19.3输出流迭代器199
19.4输入流迭代器200
19.5讨论204
第20章迭代器配接器205
20.1一个例子205
20.2方向不对称性207
20.3一致性和不对称性208
20.4自动反向209
20.5讨论211
第21章函数对象213
21.1一个例子213
21.2函数指针216
21.3函数对象218
21.4函数对象模板219
21.5隐藏中间类型220
21.6一种类型包罗万象221
21.7实现222
21.8讨论224
第22章函数配接器225
22.1为什么是函数对象225
22.2用于内建操作符的函数对象226
22.3绑定者(Binders)227
22.4更深入地探讨228
22.5接口继承229
22.6使用这些类230
22.7讨论231
第四篇库
第23章日常使用的库235
23.1问题235
23.2理解问题:第1部分237
23.3实现:第1部分237
23.4理解问题:第2部分239
23.5实现:第2部分240
23.6讨论242
第24章一个库接口设计实例243
24.1复杂问题244
24.2优化接口245
24.3温故知新246
24.4编写代码247
24.5小结249
第25章库设计就是语言设计251
25.1字符串251
25.2内存耗尽252
25.3复制255
25.4隐藏实现257
25.5缺省构造函数259
25.6其他操作260
25.7子字符串262
25.8小结263
第26章语言设计就是库设计265
26.1抽象数据类型265
26.2库和抽象数据类型266
26.3内存分配269
26.4按成员赋值(memberwise assignment)和初始化270
26.5异常处理272
26.6小结272
第五篇技术
第27章自己跟踪自己的类275
27.1设计一个跟踪类275
27.2创建死代码278
27.3生成对象的审计跟踪279
27.4验证容器行为281
27.5小结286
第28章在簇中分配对象287
28.1问题287
28.2设计方案287
28.3实现290
28.4加入继承292
28.5小结293
第29章应用器、操纵器和函数对象295
29.1问题295
29.2一种解决方案297
29.3另一种不同的解决方案298
29.4多个参数299
29.5一个例子301
29.6简化302
29.7思考303
29.8历史记录、参考资料和致谢304
第30章将应用程序库从输入输出中分离出来305
30.1问题305
30.2解决方案1:技巧加蛮力306
30.3解决方案2:抽象输出307
30.4解决方案3:技巧而无蛮力309
30.5评论311
第六篇总结
第31章通过复杂性获取简单性315
31.1世界是复杂的315
31.2复杂性变得隐蔽316
31.3计算机也是一样316
31.4计算机解决实际问题317
31.5类库和语言语义318
31.6很难使事情变得容易319
31.7抽象和接口320
31.8复杂度的守恒321
第32章说了Hello world后再做什么323
32.1找当地的专家323
32.2选一种工具包并适应它324
32.3C的某些部分是必需的324
32.4C的其他部分不是必需的325
32.5给自己设一些问题327
32.6小结329
附录Koenig和Moo夫妇访谈331
内容摘要
本书基于作者在知名技术杂志发表的技术文章、世界各地发表的演讲以及斯坦福大学的课程讲义整理、写作而成,融聚了作者10多年C++程序生涯的真知灼见。本书分为6篇,共32章,分别对C++语言的历史和特点、类和继承、STL与泛型编程、库的设计等几大技术话题进行了详细而深入的讨论,细微之处几乎涵盖了C++所有的设计思想和技术细节。本书通过精心挑选的实例,向读者传达优选的程序设计方法和理念。本书适合有一定经验的C++程序员阅读学习,可以帮助他们提升技术能力,成为C++程序设计的高手。
主编推荐
聆听大师教诲,掌握编程精髓。
1.基于作者在知名技术杂志发表的技术文章、世界各地发表的演讲以及斯坦福大学的课程讲义整理、写作而成。
2.有名技术伉俪十年编程生涯的真知灼见。
3.本书重点关注的是一些重要的C++思想和编程技巧,旨在让读者理解C++编程中的一些原理(why),而不仅仅是工作机制(how),无论你是否是C++编程专家,都会在本书中发现重要的与C++编程有关的技巧和思考。
4.C++之父 Bjarne Stroustrup 倾力推荐。
本书涵盖了如下内容:
涵盖了广泛的C++思想和技术——从详细的代码示例到设计原则和哲学,不一而足;
介绍了如何看待C++中的编程,而不仅仅是遵循C++的规则进行编程;
解释了示例背后的动机;有时甚至使用两种不同的方法来解决同一个问题;
囊括了面向对象编程和通用编程;
解释了标准模板库背后的思想,这是C++中的重要创新。
媒体评论
Koenig和Moo的《C++ 沉思录》将会为许多人提供有用的帮助。
对于C++是什么样的以及能够做些什么,他们的先见之明在这本书里随处可见。
——Bjarne Stroustrup, C++之父
— 没有更多了 —
以下为对购买帮助不大的评价