我推荐本书作为c++ primer和effective c++之后的第三本必读书。如果你时间充裕或想挑战自己,我甚至推荐跳过ec++直接读这本。如果你精通其他编程语言,并有较丰富的实际开发经验,我推荐你直接从这本书开始学c++,跳过c++ primer。
吐槽一下国内也不知道被哪些人带起来的,认为这是入门级别的c++书,蛤蛤,要是真吃透了这书,别说什么effective系列exeptional系列,连模板这种葵花宝典级的武功你都勉强能说““掌握”了。
不过这书太形而上,语言特性和设计动机和编程思想等等内容全都揉做一坨,组织又差,示例代码又不好,经常一个很重要的点在边边角角一句话就带过去了,真要死磕这本也是蛮痛苦的。这时候其他很多最佳实践类的书(effective c++, exceptional c++)就派上用场了,他们某种程度上可以看成tc++pl的notes,指着点着跟你说:
“记住了,不是你想的那样,是这样!”
“这个得这样用,知道了不?要不小心轰烂你的脚!”
我最喜欢读的部分是第一章和每章开头对语言设计动机和编程思想的讲解。有人说作者行文装逼、故弄玄虚,我觉得倒不是,是写作和组织太差了,还有点学究风。b爷作为一个技术作家确实渣,加上还是非母语写作……但是他在c++的思想和如何用好c++方面确实值得所有人取经。书里面别处没得寻的宝贝有很多的,就是要淘出来比较费劲。我是见过好多书后面的参考书列表对这本书的评价有“最终参考”“无价的资源宝库”“永远读不完”,我基本也同意。
下面随便扯几句关于c++的。
自然,c++的成功是有其历史原因的。c++的设计原则里面有:不为了减少可能的误用限制语言特性,只要是某问题的最佳解法,就采纳它,根据问题选择适合的特性是程序员的责任。“c++是给有自我要求的程序员的”,这是书上的原话。这么user-unfriendly的语言能流行起来基本只能是当年的其它语言更加unfriendly……于是c++现在都快成为小众语言了。其实那些黑c++的都应该看看本书第一章,就会发现大部分都是自己立个靶子在那黑。当然c++程序员更是应该每几个月把这第一章翻出来看一遍。
有人说c++丑,坑多。我认为不一定漂亮的设计才是好的设计,“漂亮”不过是可选的设计原则之一。而漂亮在很大程度上是跟c++的几个设计原则是矛盾的,比如效率优先和前面提到的不轻易简化。c++的坑多基本是因为它太复杂。复杂是因为它既要像c一般操作硬件,又想不断提升抽象层次。结果是下至位操作上至定义DSL无所不能,同时在特性与特性交界处的留下很多corner case,就是坑。c++的坑不是因为它设计失误或不严谨,相反,c++太严谨了,以至于在预先的设计、定义或一定的tradeoff下,只能如此,即使看起来是这样奇葩反人类。用c++编程有时候会有种尽在掌控的快感,但又总是能让你有“卧槽,还能这样玩!”的惊奇,这是我喜欢c++的原因。
最后,c++的语法我觉得还是蛮好看的,设计者在一致性上是下了功夫的,比如类语法和c struct定义的无缝接合,运算符重载的引入,模板语法自然叠加在类和函数之上……总之在我看过的一些语言里面c++不算丑。反观同样是基于c的objc,就说面向对象特性吧,含糊得多还丑得多,更别提那patch一般的动态特性和MRR/ARC特性,库的接口呈现也不一致,cocoa是objc接口,GCD是c接口,但是又混合高层的block特性,这才是没有严谨设计就往上垒特性的例子。唉,好了好了,看在objc写代码还是很方便的份上我就不黑了。
C++进阶必读
《C++程序设计语言(特别版)》热门书评
-
《C++程序设计语言》真的是本入门书吗?
55有用 4无用 围城观者 2012-04-11
《C++程序设计语言》这书鼎鼎大名,C++语言之父亲自写出,无数牛人推荐,如雷贯耳。恰好部门采购一批技术书籍,我就挑了这本。虽然是众人推荐的入门书籍,但是也有人持不同建议,加之又贵,所以直到最近才有机会一睹芳容。曾看到有人评论对本书推崇之至,“它不是那种让你看了会不断窃喜的小书,需要用心体会,反复咀...
-
要成为优秀C++程序员不可不读的一本好书
20有用 3无用 老好人 2009-08-27
这本书的特色是其中充满了如何写好的C++程序的建议(每一章后都有Advice的总结),如何用C++进行软件设计的思想贯穿整本书。事实上,第四部分的三章全部在讲如何用C++进行好的设计。第三部分较为详细地讲述了STL的设计。STL可以说是C++的第一个优美的设计,其设计原理可以给一般C++程序员提供一...
-
与《C++ Primer》的区别
10有用 2无用 虫 2012-02-20
先后阅读完两本力作,它们都是不可多得的好书。我完全从自己的理解与观点来说说,我本人感觉他们之间的区别。《C++程序设计语言》内容比《C++ Primer》广。《C++程序设计语言》主要讲述C++的语法与STL的详细介绍;而《C++ Primer》比较注重与C++的使用技巧。《C++ Primer》在...
-
大道不简
10有用 2无用 WingStone 2010-09-12
十分惭愧,又是一本在家封尘已久再拿来起尘的书。究其原因... 当时购得,扫看了几眼前些章,觉得就那么回事儿,而且最关键的是非等宽字符代码看得我这个非常的不习惯,于是乎渐渐入柜淡忘。再次拾起缘故复杂,工作中的近半个月里偷闲翻看了三百余页,发现其内确实精妙绝伦,不时让我有拍案的冲动。此厚厚的大部头,内容...
-
这本书很好
7有用 5无用 魏理布赫 2008-07-03
看了这本书,我基本上成了所有认识的人的导师!周围任何一个写C++程序碰到问题的人,我都能在5分钟内帮他解决!当然光看还不行,必须是用心看,还得实践!附录也很有的看,就连C++的语法BCD范式,也很有的看!...
书名: C++程序设计语言(特别版)
作者: [美] Bjarne Stroustrup 贝尔实验室
出版社: 机械工业出版社
原作名: The C++ Programming Language (Special Edition)
译者: 裘宗燕
出版年: 2002-7
页数: 905
定价: 85.00元
装帧: 平装
ISBN: 9787111102021