本书详细地讨论了如何编写健壮高效的代码以及模块设计技术。本书采用了自问自答的语言风格,它讨论了实际程序设计中普遍存在的,又非常不易察觉的问题,并且进行了深刻的分析,提出了具有广泛意义的解决方案。本书值得每个想成为优秀c++程序员的人阅读。我相信,任何c++程序员都会在本书的阅读过程中有许多收获,甚至有一种醍醐灌顶,恍然大悟的收获和喜悦。
\r\n
\r\n
序
\r\n前 言
\r\n第1章 泛型程序设计与C++标准库
\r\n 第1条 迭代器(难度:7)
\r\n 第2条 不区分大小写的字符串——之一(难度:7)
\r\n 第3条 不区分大小写的字符串——之二(难度:5)
\r\n 第4条 最大可重用的泛型容器——之一(难度:8)
\r\n 第5条 最大可重用的泛型容器——之二(难度:6)
\r\n 第6条 临时对象(难度:5)
\r\n 第7条 使用标准库(或称再谈临时对象)(难度:5)
\r\n第2章 异常安全性问题与技术
\r\n 第8条 编写异常安全的代码——之一(难度:7)
\r\n 第9条 编写异常安全的代码——之二(难度:8)
\r\n 第10条 编写异常安全的代码——之三(难度:9.5)
\r\n 第11条 编写异常安全的代码——之四(难度:8)
\r\n 第12条 编写异常安全的代码——之五(难度:7)
\r\n 第13条 编写异常安全的代码——之六(难度:9)
\r\n 第14条 编写异常安全的代码——之七(难度:5)
\r\n 第15条 编写异常安全的代码——之八(难度:9)
\r\n 第16条 编写异常安全的代码——之九(难度:8)
\r\n 第17条 编写异常安全的代码——之十(难度:9.5)
\r\n 第18条 代码复杂性——之一(难度:9)
\r\n 第19条 代码复杂性——之二(难度:7)
\r\n第3章 类的设计与继承
\r\n第4章 编译器防火墙和Pimpl习惯用法
\r\n第5章 名字查找、名字空间和接口规则
\r\n第6章 内存管理
\r\n第7章 缺陷、陷阱和错误习惯用法
\r\n第8章 其他主题
\r\n后记
\r\n参考文献
\r\n索引
C++ 是一个难学易用的语言!
C++ 的难学, 不仅在其广博的语法, 以及语法背后的语意, 以及语意背后的深层思维, 以及深层思维背后的对象模型, C++ 的难学, 还在于它提供了四种不同(但相辅相成)的程序设计思维模式:procedural-based, object-based, object-oriented,generic paradigm.
世上没有白吃的午餐. 又要有效率, 又要有弹性, 又要前瞻望远, 又要回溯兼容, 又要能治大国, 又要能烹小鲜, 学习起来当然就不可能太简单. 在如此庞大复杂的机制下, 万千使用者前仆后续的动力是:一旦学成, 妙用无穷.
C++ 相关书籍之多, 车载斗量, 如天上繁星, 如过江之鲫. 广博如四库全书者有之(The C++ Programming Language. C++ Primer), 深奥如重山复水者有之(TheAnnotated 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++ StandardLibrary), 另辟蹊径者有之(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++ 语言书籍中亦曾概略提过, 但此类书籍以深度探索的方式, 让我们了解问题背后的成因. 最佳的解法. 以及其它可能的牵扯. 至于大范围主题, 例如smartpointers, 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
不论外装或内容, 中文版比其英文版兄弟毫不逊色. 本书不但与原文本页页对译, 保留索引, 并加上精装. 书签条. 译注. 书籍交叉参考. 完整范例码. 读者服务.
这套书对于您的程序设计生涯, 可带来重大帮助. 制作这套书籍使我感觉非常快乐. 我祈盼(并相信)您在阅读此书时拥有同样的心情.