C++进阶必读_C++程序设计语言(特别版)书评-查字典图书网
查字典图书网
当前位置: 查字典 > 图书网 > 编程 > C++程序设计语言(特别版) > C++进阶必读
C++程序设计语言(特别版) 的书评 发表时间:2015-08-09 19:08:48

C++进阶必读

我推荐本书作为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写代码还是很方便的份上我就不黑了。

展开全文


推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读