合上More Exceptional C++的瞬间
与大师面对面(译序)
小提琴家穆特录制过一张唱片,收录的是贝多芬最伟大的两部小提琴作品 。聆听那张唱片,你仿佛听见贝多芬在向你倾诉他对音乐艺术的理解和感悟,为你解答小提琴音乐创作的每一个疑问和困惑。为了向音乐爱好者推荐贝多芬的那两部名作,穆特为她的那张名碟加上了一个恰如其分的标题—— “与贝多芬面对面”。
合上More Exceptional C++的瞬间,我的第一反应是为这本名著也加上一个与之类似的副标题,然后,郑重地推荐给你。
是的,本书奉献给你的是又一位大师苦心孤诣的结晶。不同的是,这位大师来自你所关注的C++程序设计领域。对每一位C++爱好者或C++专业程序员来说,Herb Sutter的名字应该不会让人感到陌生。作为ISO/ANSI C++标准委员会的委员,Herb Sutter不仅是C++程序设计领域公认的专家,还是深受程序员喜爱的技术讲师和作家。Herb Sutter在互联网上主持的Guru of the Week专栏广受欢迎,几乎成为每一位C++程序员的网上必读物。本书就是Guru of the Week的最新精华总结。
本书的主要特点可以反映在我为它所加的副标题中。作为身经百战的专业程序员,而且长期从事程序设计的普及教育工作,Herb Sutter最清楚程序员在提升技术功力的过程中的所想所为。他既了解初学者的疑问和困惑,也对专业程序员日常工作中遭遇到的陷阱和易犯的错误了如指掌。因而,在本书中,Herb Sutter采用了独具匠心的“提问/解答”的方式来指导你学习C++的语言特性;在本书的每个专题中,Herb Sutter都合理地设想出你的疑问和困惑,又有如神助地猜到了你的(可能是错误的)解答,然后给你以指点并呈现出最佳方案,最后,还提炼出解决类似问题的一般性原则。读了这本书,你仿佛和Herb Sutter这位大师面对面地进行了一场对话,亲历了他对你的指导和点拨。
关于本书的另一个特点,我想指出的是,作为C++标准委员会的委员,Herb Sutter在本书中强调了C++语言的最新标准和最新特性,强调了泛型程序设计和标准库的使用。在本书的所有示例中,Herb Sutter为我们提供的是清新的C++编程风格和纯正的现代C++代码和范例。
本书适合的读者对象是中高级程序员,但这并不是说本书的内容高不可攀。作者并不是在讲述高深的语言特性和设计技巧,更没有对基础话题避而不谈;相反,有关基础知识的介绍、回顾和深化散见于本书的很多条款之中。只不过,这些条款的内容涉及的只是C++特性中的细节,它没有对C++的每一个特性、或每个特性中的每一个方面做全面的介绍。尽管如此,只要具备基本的C++功底和一定的程序设计经验,你完全可以理解和消化本书的所有内容。由于作者进行了巧妙的组织和精心的选材,本书每一个条款的内容都独立而完整,它可以让你在深入学习C++语言特性时事半功倍。
因而,我相信,无论是有一定基础的C++爱好者,还是身经百战的专业程序员,本书都将为你带来收获;在你的C++程序设计生涯中,它将是你的案头不可或缺的C++专著之一。
致谢
能够翻译完这本书,我首先要感谢我的妻子妞妞和儿子斗斗,是你们给了我工作的动力,长期以来我都未能陪伴在你们身边,你们不但给了我宽容,还依然给我不变的爱和支持。感谢yeka,是你促成了我和出版社的愉快合作,并给了我最直接的帮助。感谢肖翔对译稿进行的认真审校,他在审阅过程中的真知灼见令我受益匪浅。感谢moonsea,即使是在我工作的时候,你也会不时地扰乱我的心绪,迫使我无法继续工作—— 正因为这样,我才得以不时地逃离枯燥的键盘和屏幕,偷得一刻闲暇。感谢作者Herb Sutter,在翻译本书的过程中,你对我的每一次请教都给予了耐心的解答—— 和大师的直接对话让我如沐春风。最后,感谢互联网上所有给予我帮助和鼓励的朋友们,lostmouse(我在专业论坛上的网名)希望,这本译作能成为我对你们最好的回馈;我还希望,你们能一如既往地帮助我,指出我在这本译作中留下的每一个疏漏和错误。感谢你们!
於春景(lostmouse)
2002年5月于深圳蛇口