六刷 3000 本(2006  下半)  
五刷 3000 本(2005/10/xx)  
四刷 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)