四刷 3000 本(2003/07/xx)  
三刷 8000 本(2002/03/08)  
二刷 8000 本(2001/10/30)  
一刷 8000 本(2001/09/20)  

《Effective C++ 2e》
简体中文版

侯捷 译

effective-cpp-2e-gb.jpg (314530 bytes)

简体版 勘误


出版简讯 / 华中科技大学出版社计算机编辑室暨市场部

亲爱的读者朋友:您好

由闻名于世的C++大师级作家Scott Meyers精心撰写,由台湾着名IT技术作家侯捷先生倾力翻译的一本C++进阶好书《Effective C++ 中文版》2001年9月由华中科技大学出版社正式出版,第一次印刷8000册。出版後受到读者热烈欢迎,2001年11月再次印刷8000册,目前也已告售罄。出版社正在加紧进行第三次印刷(8000册),以满足广大读者的需要。

本书是Scott Meyers成名作的第二版,全书遵循1998年定案之C++ 标准规格。在国际上,本书所引起的反响之大,涵盖整个计算机技术出版领域。几乎在所有C++书籍的推荐名单上,本书都位於前三名。拥有这本书,您就获得了迅速提升C++功力的一个契机。

本书第三次印刷仍然采用国际16开本,280页,封面为250克进口铜版纸,覆光膜,有勒口,并加上湖蓝色的双环衬,环衬上有"同筑书山路,共造学海舟"的字样。内芯为质量上乘的80克江苏高级双胶纸。封面贴有华中科技大学出版社(原华中理工大学出版社)的激光防伪商标,封底贴有Pearson Education公司提供的激光防伪商标(商标上的文字为" Pearson Education")。封面和书脊上均印有Addison Wesley 公司的徽标。

定价:49.80元/册。

本书在全国的首发书店(包括网上书店)名称和电话均公布在侯捷网站。如有疑问,欢迎发来邮件或到如下网址留言:

junzhou@public.wh.hb.cn
http://yeka52.yeah.net
http://yeka.xilubbs.com(好书 你说,我说)

您也可以选择到我社邮购,我们的邮购方式和地址说明如下:

地址:湖北武汉华中科技大学出版社读者服务部 邮政编码:430074
邮购方式:免收邮费,44.80元/本(相当于9折)
请您于汇款的同时,发邮件给junzhou@public.wh.hb.cn
以便编辑帮助您监督读者服务部及时发书。

华储网上书店是我们在网上的重要经销商,他们服务周到 及时 准确,因此,我们敬向广大中小城市和农村中买书不方便的读者郑重推荐华储网上书店(http://www.huachu.com.cn)。

华中科技大学出版社市场部暨计算机编辑室敬上


引介:一本绝妙好书    /孟岩

您手上这本书,是世界顶级C++大师Scott Meyers成名之作的第二版。其第一版诞生于1991年。在国际上,本书所引起的反响之大,波及整个计算机技术出版领域,余音至今未绝。几乎在所有C++书籍的推荐名单上,本书都会位於前三名。作者高超的技术把握力,独特的视角 诙谐轻松的写作风格 独具匠心的内容组织,都受到极大的推崇和仿效。甚至连本书简洁明快的命名风格,也有着一种特殊的号召力,我可以轻易列举出一大堆类似名字,比如Meyers本人的More Effective C++和Effective STL,Don Box的Effective COM,Stan Lippman主编的Efficient C++系列,Herb Sutter的Exceptional C++等等。要知道,这可不是出版社的有意安排,而且上面这些作者,同样是各自领域里的绝顶大师,决非人云亦云 欺世盗名之辈。这种奇特的现象,只能解释为人们对这本书衷心的赞美和推崇。

然而这样一本掷地有声的C++世界名着,不仅迟迟未能出版简体中文版,而且在国内其声誉似乎也并不显赫。可以说在一年之前,甚至很少有C++的学习者听说过这本书,这实在是一种遗憾。今天,在很多人的辛勤努力之下,这本书终於能够展现在我们的面前,对於真正的C++程序员来说,这确实是一件值得弹冠相庆的事。

我是一名普通的C++爱好者,因为机缘巧合,有幸叁与了这本书的繁简转译工作,这使我能够比较早地看到本书的原版和繁体中文版。在这里我必须表达对本书中文译者 台湾着名技术作家侯捷先生的敬意和感谢,因为在我看来,这本书的中文版在质量上较其英文版兄长分毫不差,任何人都知道,达到这一点是多麽的困难。侯先生以其深厚的技术功底 卓越的语言能力和严谨细致的治学态度,为我们跨越了语言隔阂所带来的理解障碍,完整而生动地将原书的内容与精神表达无遗,更令人钦佩的是,中文版的行文风格与原文也达到了高度的统一,可谓神形兼备,实在令人赞叹 因此我非常乐意向大家推荐这本书,相信它会在带给您带给你技术享受的同时,也带给您阅读的享受。

在转译的过程中,对於大陆和台湾两地术语的差异,侯先生与我做了很多考虑。您在书中可能会发现一些术语并不符合自己的习惯,这些都是我们经过反复思考之後保留下来的译法,大部份都有充份的理由。比如把type翻译成"型别"而不是"类型",是因为"类"在C++中实在是一个太过敏感的字眼;再比如instance没有按常规译为"实例",是因为这种译法并不符合面向对象思想的本意。技术翻译毕竟还要讲求技术上的严谨和准确,所以我做出了一些抉择。究竟效果如何,还得要由广大的读者评价。我欢迎这方面的讨论。下面是一份整理:

英文术语 大陆惯用译法 本书译法
adapter 适配器 配接器
argument 实叁(实质叁数) 引数
by reference 传叁考,传地址 传址
by value 传值  传值
dereference 反引用,解叁考 提领
evaluate 评估,计算 评估, 核定
instance 案例,实例 实体
instantiated 实例化 实体化、具现化
library 库,函数库 程序库
range 范围 区间(使用於STL时)
resolve 解析 决议
parameter 形叁(形式叁数) 叁数
type 类型 型别

曾经在网络讨论组中间看到这样的说法,C++程序员可以分成两类,读过Effective C++的和没读过的。或许有点夸张了,但无论如何,当您拥有这本书之後,就获得了迅速提升自己C++功力的一个契机。这本书不是读完一遍就可以束之高阁的快餐读物,也不是能够立刻解决手边问题的叁考手册,而是需要您去反复阅读体,极力融入自己思想之中,融入自己每一次敲击键盘的动作之中。C++是真正程序员的语言,背後有着精深的思想与无以伦比的表达能力,这使得它具有类似宗教般的魅力。希望这本书能够帮助您跨越C++的重重险阻,领略高处才有的壮美,做一个成功而快乐的C++程序员。

孟岩

2001-8-10


译序/侯捷 (沿用繁体版译序)

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

不论外装或内容,中文版比其英文版兄弟毫不逊色。本书不但与原文本页页对译,保留索引,并加上精装、书签条、译注、书籍交叉叁考 、完整范例码 、读者服务 。

这套书对於您的程式设计生涯,可带来重大帮助。制作这套书籍使我感觉非常快乐。我祈盼(并相信)您在阅读此书时拥有同样的心情。

侯捷 2000/05/15 于新竹.台湾
jjhou@jjhou.com
http://www.jjhou.com

注1:Effective C++ 2/e More Effective C++ 之中译,事实上是以 Scott Meyers 的另一个产品 Effective C++ CD 为本,不仅资料更新,同时亦将 CD 版中两书之交叉叁考保留下来。这可为读者带来旁徵博引时的莫大帮助。

注2:书中程式多为片段。我将陆续完成完整的范例程式,并在 Visual C++,C++Builder, GNU C++ 上测试。请至侯捷网站(http://www.jjhou.com)下载。

注3:欢迎读者对本书范围所及的主题提出讨论,并感谢读者对本书的任何误失提出指正。来信请寄侯捷电子信箱(jjhou@jjhou.com)


前言 / Meyers

本书繁体版前言请见 前言 (PDF)


目录

本书繁体版目录请见 目录 (PDF)


封底

本书繁体版封底请见 封底文案 (PDF)