本书基于作者在知名技术杂志发表的技术文章、世界各地发表的演讲以及斯坦福大学的课程讲义整理、写作而成,融聚了作者10多年C++程序生涯的真知灼见。 全书分为6篇32章,分别对C++语言的历史和特点、类和继承、STL与泛型编程、库的设计等几大技术话题进行了详细而深入的讨论,细微之处几乎涵盖了C++所有的设计思想和技术细节。全书通过精心挑选的实例,向读者传达先进的程序设计的方法和理念。 本书适合有一定经验的C++程序员阅读学习,可以帮助读者加强提高技术能力,成为C++程序设计的高手。
十年编程生涯的真知灼见;
著名技术伉丽的C++观点...
凯尼格,AT&T大规模程序研发部(前贝尔实验室)成员。他从1986年开始从事C语言的研究,1977年加入贝尔实验室。他编写了一些早期的类库,并在1988年组织召开了及时个具有相当规模的c++会议。在ISO/ANSI c++委员会成立的1989年,他就加入了该委员会,并一直担任项目编辑,他已经发表了c++方面的100多篇论文,在Addsion-Wesley出版了C Traps and pitfalls一书(中文版名为《c缺陷与陷阱》,由人民邮电出版社出版),还应邀到世界各地演讲。
目录
第0章序幕1
0.1及时次尝试1
0.1.1改进2
0.1.2另一种改进3
0.2不用类来实现4
0.3为什么用C++更简单5
0.4一个更大的例子6
0.5结论6
及时篇动机
第1章为什么我用C++11
1.1问题11
1.2历史背景12
1.3自动软件12
1.3.1性与通用性13
1.3.2为什么用C14
1.3.3应付快速增长15
1.4进入C++15
1.5重复利用的软件20
1.6后记21
第2章为什么用C++工作23
2.1小项目的成功23
2.1.1开销24
2.1.2质疑软件工厂24
2.2抽象25
2.2.1有些抽象不是语言的一部分26
2.2.2抽象和规范26
2.2.3抽象和内存管理27
2.3机器应该为人服务28
第3章生活在现实世界中29
第二篇类和继承
第4章类设计者的核查表37
第5章类47
5.1问题47
5.2经典解决方案48
5.3虚复制函数49
5.4定义类50
5.5小结53
第6章句柄:及时部分55
6.1问题55
6.2一个简单的类56
6.3绑定到句柄58
6.4获取对象58
6.5简单的实现59
6.6引用计数型句柄60
6.7写时复制62
6.8讨论63
第7章句柄:第二部分67
7.1回顾68
7.2分离引用计数69
7.3对引用计数的抽象70
7.4存取函数和写时复制73
7.5讨论73
第8章一个面向对象程序范例75
8.1问题描述75
8.2面向对象的解决方案76
8.3句柄类79
8.4扩展1:新操作82
8.5扩展2:增加新的节点类型85
8.6反思86
第9章一个课堂练习的分析(上)89
9.1问题描述89
9.2接口设计91
9.3补遗93
9.4测试接口94
9.5策略95
9.6方案96
9.7图像的组合99
9.8结论102
第10章一个课堂练习的分析(下)103
10.1策略103
10.1.1方案104
10.1.2内存分配105
10.1.3结构构造107
10.1.4显示图像110
10.2体验设计的灵活性116
10.3结论119
第11章什么时候不应当使用虚函数121
11.1适用的情况121
11.2不适用的情况122
11.2.1效率122
11.2.2你想要什么样的行为125
11.2.3不是所有的类都是通用的127
11.3析构函数很特殊127
11.4小结129
第三篇模板
第12章设计容器类133
12.1包含什么133
12.2复制容器意味着什么134
12.3怎样获取容器的元素137
12.4怎样区分读和写138
12.5怎样处理容器的增长139
12.6容器支持哪些操作141
12.7怎样设想容器元素的类型141
12.8容器和继承143
12.9设计一个类似数组的类144
第13章访问容器中的元素151
13.1模拟指针151
13.2获取数据153
13.3遗留问题155
13.4指向const Array的Pointer159
13.5有用的增强操作161
第14章迭代器167
14.1完成Pointer类167
14.2什么是迭代器170
14.3删除元素171
14.4删除容器172
14.5其他设计考虑173
14.6讨论174
第15章序列175
15.1技术状况175
15.2基本的传统观点176
15.3增加一些额外操作181
15.4使用范例184
15.5再增加一些188
15.6请你思考190
第16章作为接口的模板191
16.1问题191
16.2及时个例子192
16.3分离迭代方式192
16.4遍历任意类型195
16.5增加其他类型196
16.6将存储技术抽象化196
16.7实证199
16.8小结200
第17章模板和泛型算法203
17.1一个特例204
17.2泛型化元素类型205
17.3推迟计数205
17.4地址独立性207
17.5查找非数组208
17.6讨论210
第18章泛型迭代器213
18.1一个不同的算法213
18.2需求的分类215
18.3输入迭代器216
18.4输出迭代器216
18.5前向迭代器217
18.6双向迭代器218
18.7随机存取迭代器218
18.8是继承吗220
18.9性能220
18.10小结221
第19章使用泛型迭代器223
19.1迭代器类型224
19.2虚拟序列224
19.3输出流迭代器227
19.4输入流迭代器229
19.5讨论232
第20章迭代器配接器233
20.1一个例子233
20.2方向不对称性235
20.3一致性和不对称性236
20.4自动反向237
20.5讨论240
第21章函数对象241
21.1一个例子241
21.2函数指针244
21.3函数对象246
21.4函数对象模板248
21.5隐藏中间类型249
21.6一种类型包罗万象250
21.7实现251
21.8讨论253
第22章函数配接器255
22.1为什么是函数对象255
22.2用于内建操作符的函数对象256
22.3绑定者(Binders)257
22.4更深入地探讨258
22.5接口继承259
22.6使用这些类260
22.7讨论261
第四篇库
第23章日常使用的库265
23.1问题265
23.2理解问题:第1部分267
23.3实现:第1部分267
23.4理解问题:第2部分270
23.5实现:第2 部分270
23.6讨论272
第24章一个库接口设计实例275
24.1复杂问题276
24.2优化接口277
24.3温故知新279
24.4编写代码280
24.5结论282
第25章库设计就是语言设计283
25.1字符串283
25.2内存耗尽284
25.3复制287
25.4隐藏实现290
25.5缺省构造函数292
25.6其他操作293
25.7子字符串295
25.8结论296
第26章语言设计就是库设计297
26.1抽象数据类型297
26.1.1构造函数与析构函数297
26.1.2成员函数及可见度控制299
26.2库和抽象数据类型299
26.2.1类型安全的链接(linkage)299
26.2.2命名空间300
26.3内存分配302
26.4按成员赋值(memberwise assignment)和初始化303
26.5异常处理305
26.6小结306
第五篇技术
第27章自己跟踪自己的类309
27.1设计一个跟踪类309
27.2创建死代码312
27.3生成对象的审计跟踪313
27.4验证容器行为315
27.5小结320
第28章在簇中分配对象321
28.1问题321
28.2设计方案321
28.3实现324
28.4加入继承326
28.5小结327
第29章应用器、操纵器和函数对象329
29.1问题329
29.2一种解决方案332
29.3另一种不同的解决方案332
29.4多个参数334
29.5一个例子335
29.6简化337
29.7思考338
29.8历史记录、参考资料和致谢339
第30章将应用程序库从输入输出中分离出来341
30.1问题341
30.2解决方案1:技巧加蛮力342
30.3解决方案2:抽象输出343
30.4解决方案3:技巧而无蛮力345
30.5评论348
第六篇总结
第31章通过复杂性获取简单性351
31.1世界是复杂的351
31.2复杂性变得隐蔽352
31.3计算机也是一样353
31.4计算机解决实际问题354
31.5类库和语言语义355
31.6很难使事情变得容易357
31.7抽象和接口357
31.8复杂度的守恒358
第32章说了Hello world后再做什么361
32.1找当地的专家361
32.2选一种工具包并适应它362
32.3C的某些部分是必需的362
32.4C的其他部分不是必需的364
32.5给自己设一些问题366
32.6结论368
附录Koenig和Moo夫妇访谈371
索引377
学习C++知识盲点和注意点的绝对好书,比中国同种书籍好太多了
还没有详细看,以前一个牛人推荐的,最好是写过C++项目之后才看!
适合有一定C++编程经验的人看,着重于编程思想,很受用。
这本书是C++中的经典。能够像Andrew一样找到Moo这样的老婆就好了啊...
学C++不能只看技巧性的书籍,还应多学学别人的经验和思想,此书很经典
好书,纸质也好,内容实用性强,对于编程中经常性所犯的错误有很好的指导性
对C++的某些细节进行了系统描述!值得慢慢品味!
C++进阶必备书籍,至于这本书都多好,大家有目共睹。
推荐给至少有四年C++职业程序设计经验的程序员精读.
经典书籍入手收藏,慢慢品味,努力对c++越来越深入理解。
对C++学习中容易犯的错误和C++内容的深思, 很赞的一本书
非常经典的书,但是需要有一定的C++项目经验的开发者阅读,如果是初学者,还是选其他的吧。因为这本书,并不是一本语法的书籍,而是作者多年来开发经验的汇总。不错~
《C++沉思录》和《深度探索 C++ 对象模型》两书配套,搞定了这两书,C++就应该具有相当的功力了。
用C++已有很多年了,这本书以前看过电子版,但感觉不是很深刻,有些地方对作者所讲并没有太深的体会;最近刚好有时间,好好温习了几位大师的经典著作,还是受益匪浅,感觉自己的功力更上一个台阶了,感觉很好!
选择C++就要了解他的一切,这本书让我们更加理性的去认识C++使用C++
读完之后确实有收获,这本书不像是一本教材,更像是一本作者的心得体会。书中教你如何真正利用C++进行面向对象的编程,或者说是如何用面向对象的方法来分析问题。并且很大篇幅的讨论了C++中很多高级的用法,教你如何使用C++中一些高级的特性
各方面都很好,唯一不足就是没有pos机!买的时候填的是用pos机,结果还是付的现金。。。
用一门语言编程、深入一门语言编程,这是一个晋级的过程。
通过简单的实例,作者将c++在面向对象方面的特点一一道明
很值得去反复读的一本书,适合有一定编程基础的人...
学习c++好久了,看过了c++作者写的,和编程思想,回过头看看c++还能学到什么,也许是c++之所以长盛不衰,或者其他语言超过c++的原因,值得好好看一下。
有别于那种系统的将C++,这本书很好找到了自身的定位,也是在看完一般教材后,才能有所领悟其中道理,我想这本书绝对值得我去品读,而且不止一次
之前买过一本C++Primer。对比前者繁琐细致的、对每个知识点的详细讲解,本书就像是期末考试前老师划的重点,很有实用价值。
不可不读的好书,学习C++,熟练掌握基本语法,面向对象的基本概念,能够实现自己想要的东西是一回事,但能够写出安全、稳定、高效、接口简洁、分离度高且可扩展性强的高质量程序又是另一回事。相信相当一部分人还是处于前面一种,一般规模的程序,能够实现预定功能,但效率低下,稳定性差不是很很容易被发现,因而经常被忽略。但对于较大规模的软件领域时,这些问题会突显,对于产品质量往往是致命的。 此外,养成一个良好编程素养也是至关重要的,几天内读完一本讲解C++用法书,能力很快会有较大提升。但好的编程习惯不是几天内就学得来的,是一个长期的潜移默…