第三本书,就应该是Bruce Eckel写的、候捷译的Thinking in C++,这本书每过半年我就要重读一遍。可以说每一章都是写得发人深省的,这本书让我感觉到了技术运用的非常高的境界,但是语言非常平实,只要认真地读,即使基础不行,也一定可以懂。我在教课的时候,就是用这本书(面对的学生是零基础)。
我已经讲了,如果要写程序,EC++和MEC++的境界已经足以使你自如应付,可是如果你还不满足,想关注一些理论层面的问题,或是想看看实现的代码,你就不应该错过这几本好极了的书。我是说Herb Sutter的Exceptional C++和MoreExceptional C++,这两本书的难度是非常大的,我对每一条的阅读笔记都是十多页。别是泛型程序设计的部分,这两本书旁征博引,极尽深入探讨之能事,每每看懂一条,都抹汗一次,大感酣畅淋漓;还有侯捷的 STL源码剖析 ,以实际的例子一点点地讲解一个STL是怎么样实现的,我是刚开始读,不发表评论;而Stanley B. Lippman,Cfront的实现者之一,执笔写出Inside the C++ ObjectModel,我只有一个字,就是基本帅呆了。我从中了解了无数的编译器解释源代码的细节,以及记忆体分配的细节,呵呵,这些都知道了,我还怕什么呢?最近得了另一Cfront实现者、C++标准委员会Koenig的 C++沉思录,看起来非常不错,这里也推荐给大家,但我也没看完,亦无发言权。
最后最后,你们,未来的C++理论家们,可要记住,Bjarne Stroustrup的The C++ Programming Language无论如何也应该读个四五遍!这是一切C++的书本的源泉。如果还觉得不够,就向C++标准委员会订购一本C++标准。
2、《Modern C++ Design》 作者:Andrei Alexandrescu 译者:侯捷、於春景 出版社:华中科技大学出版社(中文) 中国电力出版社(影印) 读完这本书的第一页,我就知道自己放不下它了,但我也知道,我的苦难经历又要多上一笔了。用C++实作设计模式,已经是骨灰级的难度,但这本书明显还在讲一个template的对象模型的问题,这在我读《Inside the C++ Object Model》时是屡攻不下的难点。不过,出乎意料的是这本书居然使我具有一些概念了,而且动手写出了一个SmartPointer。 这本书我还远不能说我读懂了,但是确乎是读完了。如果你还没有读过对象模型和设计模式的书,我认为需要读一读。否则,直接看这本书根本就是受罪。最近,有一些朋友也注意到设计模式的重要性了,可从明年起我在《电脑报》上要发表一些文章,届时请朋友们指教吧。