侯捷老师作为华人圈里C++数一数二的大牛,其本身的文笔也有相当高的水准。且看这一段more effective c++的序。
C++ 是一个难学易用的语言!
C++ 的难学,不仅在其广博的语法,以及语法背後的语意,以及语意背後的深层思维, 以及深层思维背後的物件模型;C++ 的难学,还在於它提供了四种不同(但相辅相成)的程 式设计思维模式:procedural-based,object-based,object-oriented,generic paradigm。
世上没有白吃的午餐。又要有效率,又要有弹性,又要前瞻望远,又要回溯相容,又要 能治大国,又要能烹小鲜,学习起来当然就不可能太简单。
在如此庞大复杂的机制下,万千使用者前仆後续的动力是:一旦学成,妙用无穷。C++ 相 关书籍之多,车载斗量;如天上繁星,如过江之鲫。广博如四库全书者有之(The C++ Programming Language、C++ Primer),深奥如重山复水者有之(The Annotated C++ Reference Manual, Inside the C++ Object Model),细说历史者有之(The Design and Evolution of C++, Ruminations on C++),独沽一味者有之(Polymorphism in C++, Genericity in C++), 独树一帜者有之(Design Patterns,Large Scale C++ Software Design, C++ FAQs),程式 库大全有之(The C++ Standard Library),另辟蹊径者有之(Generic Programming and the STL),工程经验之累积亦有之(Effective C++, More Effective C++, Exceptional C++)。
这其中,「工程经验之累积」对已具 C++ 相当基础的程式员而言,有著致命的吸引力与 立竿见影的帮助。Scott Meyers 的 Effective C++ 和 More Effective C++ 是此类佼佼, Herb Sutter 的 Exceptional C++ 则是後起之秀。
这类书籍的一个共通特色是轻薄短小,并且高密度地纳入作者浸淫於 C++/OOP 领域多 年而广泛的经验。它们不但开展读者的视野,也为读者提供各种 C++/OOP 常见问题或易犯 错误的解决模型。某些小范围主题诸如「在 base classes 中使用 virtual destructor」、 「令 operator= 传回*this 的 reference」,可能在百科型 C++ 语言书籍中亦曾概略提过, 但此类书籍以深度探索的方式,让我们了解问题背後的成因、最佳的解法、以及其他可能的 牵扯。至於大范围主题,例如 smart pointers, reference counting, proxy classes,double dispatching, 基本上已属 design patterns 的层级!
这些都是经验的累积和心血的结晶。我很高兴将以下三本极佳书籍,规划为一个系列,以精装的形式呈现给您:
1. Effective C++ 2/e, by Scott Meyers, AW 1998
2. More Effective C++, by Scott Meyers, AW 1996
3. Exceptional C++, by Herb Sutter, AW 1999 不论外装或内容,中文版比其英文版兄弟毫不逊色。本书不但与原文本页页对译, 保留索引,并加上精装、书签条、译注、书籍交叉参考 1、完整范例码 2、读者服务 3。 这套书对於您的程式设计生涯,可带来重大帮助。制作这套书籍使我感觉非常快 乐。我祈盼(并相信)您在阅读此书时拥有同样的心情。
侯捷 2000/05/15 于新竹.台湾
浙公网安备 33010602011771号