精華區beta C_and_CPP 關於我們 聯絡資訊
一些書單,有一部份沒有繁體譯本。 首先,關於入門書方面,我覺得到現在我都沒有看到一部適合初學者的 C++ 入門書。經典的書都是高手們寫的,但根本不適合初學者看。這大 概是 C++ 族群增長的一大瓶頸。 我個人覺得最適合入門的一本書是 K&R 的那本 C 語言經典,講解和舉 例都非常有水準。C++ 的話則是「從 C 到 C++ 物件導向革命」。它是 1990 年的書,作者陳建維先生是當時 C++ 標準委員會的一員。這本書 我覺得相當不錯,用不是很大的篇幅,從軟體工程, OO 的思想、觀念 ,到 C++ 語言。甚至當時書的附錄就已經提到 template 了。 可惜,這本書,現在已經找不到了。這是我第一本看的 C++ 的書。當時 這本書和 C++ Primer, The C++ Programming Language 並稱三大經典。 《C++ Primer》3/e 這本是我最喜愛的 C++ 經典之一。可以說是經典中的經典。現在出到 四版,中譯本年底應該會出來。我看的是第三版,由 jjhou 譯的。當 然,雖然它叫 Primer,但絕對不適合初學者。尤其許多細節之繁復( 像什麼名稱決議過程),保証讓初學者吐血,我相信連許多老手都會覺 得受不了。 基本上我把這本書當作「字典」、「百科全書」類來看,每當一些細 節不是很確定,就翻翻它。有時晚上無聊抱著它,不知不覺睡著了。 這本書如果能夠大致流覽過,並且熟悉其中 60~70% 以上,我相信已 經達到普通 C++ 高手的程度了。 當然,C++ 高手不等於軟體高手。成為編程高手不難,成為設計高手才 難。C++ 其實可以只花很短(半年至一年)的時間就精通,但許多編程 、軟體設計經驗的累積,那絕不是三、五年的事,通常都得十年八年以 上。 《The C++ Programming Language》 C++ 之父,B.S. 的大作。這本書我讀的是特別版。感覺上它比 C++ Primer 更不適合初學者。尤其是連程序設計都還搞不清楚的新手。 這本書的思想、哲學意味很濃厚,很多篇幅內容不是在講語言的技術, 而是在講設計的思維。如果看過 C++ Primer,再來看這本,應該會有 比較多的體悟。 內容方面,雖然不若 C++ Primer 鉅細靡遺,但很精致、簡潔扼要, 它不斷拋出各種「設計」層次(而不是語法)的議題,沖擊讀者的思 考,迫使你去關注更多編程的本質。 有些部份,我覺得 The C++ Programming Language 比 C++ Primer 好,例如許多語言特征為何存在﹖其應用時機,它給的範例都很適當, C++ Primer 則比較注重語法和規則的完整詮譯(畢竟大師是搞 Compiler 的專家) 《Effective C++》 這本書也是經典的經典,我推薦所有學過 C++,但自覺對 C++ 一知 半解的人,從這本書開始「重新入門」。 它把 C++ 程序員最常犯的一些錯誤,不好的用法,忽略的重要細節, 用 50 個條款,分門別類地一一列出。雖然這些內容,在 C++ Primer 或其他大部頭的經典著作,都不是沒有寫到。但大概很難有人有耐心 從頭到尾看完。(我猜作者自己也看不下去…) 這本書的好處就是,一次一個主題,把為什麼要這樣,來龍去脈,各 種其他舊方法的缺點,不足之處,一一分析出來。讓讀者確確實實了 解並掌握優良的 C++ 編程風格的技術關鍵。 如果 C++ Primer 看不下去的話,可以先從這本開始,遇到語法細節 搞不清楚的時候,再去翻查 C++ Primer 等教科書。 《More Effective C++》 同上,更深入的主題,某些議題已經可以算是 C++ 高手的程度了( 也脫離教科書的範圍),例如 Lazy Evaluation, Virtualizing Constructors, Reference Counting, Proxy Classes…等,有些 是特殊技術,有些已經算是 Design Patterns 的東西。 這本書當然完全不適合入門者,它適合對 C++ 各種基本特徵已經很熟 悉的讀者看。 《Exceptional C++》 我第一次看這本書時,幾乎懷疑我是否學過 C++。但是現在,我只能 說,這本也是經典中的經典。它已經深入到接觸 C++ Object Model 的層次。特別是 Exception-Safety 這一章一系列的步步深入,很大 程度上改變了我對 C++ 的認識。此外,它有提到 Pimpl Idiom,這 對改善 C++ 編譯效率也有一定的幫助。其他的主題,例如泛型編程 和對標準庫的幾個討論議題、暫時物件、物件壽命、自動轉換…等,也 頗有深度。如果沒看過這本,且對自己的 C++ 功力頗有信心的人,可 以測試看看。 《Inside The C++ Object Model》 這本書和《Essential COM》,是我讀不太下去的兩本書。僅供高手 們參考。適合有志深入 C++ 語言核心(例如想要發展 C++ Compiler 的人)鑽研。其實它並不是很難,但我認為實用性不高,有時間, 不如看看 Effective/Exceptional C++ 系列。 《The C++ Standard Library》 經典中的經典,學 C++ 不學標準庫,就像有腦子卻沒手腳,難以施展。 C++ 標準庫和大型的 J2EE, .NET 等框架相比,算是很陽春的。 C++ 標準庫只規範了標準 I/O ,資料流,異常,演算法和資料結構, 還有一些國際化議題。一些重要的功能,如: IPC, GUI 等等,都不 在其內。 這本書是德國人寫的,內容務實中肯,獲得世界一致好評。書中前面 有一章特別介紹 C++ 泛型編程基礎,講得很清楚,是我看過最好的 入門書(學習 STL)、兼工具書、參考書。雖然很大本,但絕對值得 買一本。 《C++ Templates》 這本書好像是 2001 年出的,中譯本在台灣直到去年才出來。內容完 全針對 template 所有的技術細節及應用,豐富得叫人難以想像。 有時候,我覺得 template 一直玩下去,會走火入魔,這本書的內容 ,某些時候給我這種想法。不過還是值得一看。 《Modern C++ Design》 這本書是近兩年我最愛的一本 C++ 的書,我簡直愛死它了﹗作者把 C++ template 的編程技術,推向一個嶄新的世界,讓許多 C++ 大師 級人物,都目瞪口呆的一本書﹗巧妙地結合 GP 和 OO,讓動態多型 和靜態多型完美地合作無間,也讓 Design Patterns 領域,有了全 新的視野和思維。它的實作品,Loki 函式庫也是我常常運用到的 (雖然只有部份能通過編譯,正常的工作)。 一本有志成為 C++ 高手絕對不可錯過的書。當然,在此之前,要 先把 C++ Primer 等先學好再說。 《The Design and Evolution of C++》(D&E) 這本書台灣沒有譯,我起初看的是英文版,後來知道北京有譯這本書 ,就托同事的朋友買回來。 這本書不適合學習,適合對 C++ 發展歷程有興趣的人看 C++ 之父現 身說法,親自講述,C++ 是根據哪些原則原理產生的它的各種語言特徵 ,取舍之間,又經過了什麼特殊考量。此外,有些歷史因素,影響 C++ 的發展,裡面都有提到。 我當作小說在看的一本。 《Imperfect C++》 算是比較新的一本書,台灣沒有譯這本。內容討論到一些比較細部的 問題。適合對 C++ 有深入了解的人。 此外,《More Exceptional C++》和《C++ Gotchas》這兩本不知為何, 我覺得不太喜歡,雖然它討論的議題都很深入。或許實用性不高的關係, 我老是覺得它似乎有點 C++ 學究的味道。 不過,這兩本也是公認的經典。 還有很多其他的,例如《Thinking in C++》或《C++ 沉思錄》,也都 是經典,前者也不錯,蠻適合當參考書用(後者比較像故事書)。但以 學習 C++ 而言,我認為《C++ Primer》,《The C++ Programming》 Language 這兩本比較適合(兼具教科書和參考書的價值)。 《Essential C++》這本,評價不高,它既不如 C++ Primer 完整,也不 適合初學者,只能說是聊備一格。應該不用看。 另外,專講 STL 的書也很多,有的也很深入,但從實用的角度,我認為 只要一本《The C++ Standard Library》就大致足夠了。 另外,《Effective STL》也是一本很不錯的書,可以糾正很多不好的用 法。 其實對其他語言的使用者而言,很難接受學個 C++ 要看這麼多書(我想 也只有 C++ 的熱愛者,才會真的去讀這些書)。 C++ 要實用,還要學習許多 GUI, Database, IPC 等等的 Framework, 這些東西沒有統一標準,可說憑個人的選擇,通常是基於工作環境的需 要。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.120.214.120
lightspeed:大師...您一定要來當版主阿<(_ _)> 140.114.222.56 08/06
StubbornLin:我相信這些書看完已經夠神了 XD 59.116.65.245 08/06
StubbornLin:C++ Primer 似乎也是人手一本 我卻沒有= = 59.116.65.245 08/06
StubbornLin:我在博客來搜尋找到了幾本 哪本才是你們指的 59.116.65.245 08/06
StubbornLin: C++ Primer Plus 4/e 中文修訂版(附1CD) 59.116.65.245 08/06
StubbornLin: C++ Primer 3/e 中文版 . 2001修訂版 59.116.65.245 08/06
StubbornLin: C++ Primer Plus 4/e 59.116.65.245 08/06
StubbornLin: C++ Primer 題解 59.116.65.245 08/06
StubbornLin:C++ PRIMER 3RD EDITION中文版 59.116.65.245 08/06
renderer:推推推 61.228.216.204 08/06
gocpp:C++ Primer 3/e 中文版 或 2001修訂版 59.120.214.120 08/06
StubbornLin:感謝 XD 我又多了一本枕頭 59.116.65.245 08/06
StubbornLin:說到枕頭 我上次把我的書帶到學校宿舍去 59.116.65.245 08/06
StubbornLin:真的被我找不到枕頭的室友拿去睡= = XD 59.116.65.245 08/06
Keiichi:C++ Primer 題解 是 C++ Primer 3/e 的習題解答 59.121.142.9 08/06
Keiichi:C++ Primer Plus 跟 C++ Primer 無關 也不經典 59.121.142.9 08/06
Keiichi:另外狂推 Modern C++ Design,超神的一本書… 59.121.142.9 08/06
Keiichi:薄薄的一本,但你絕對不會忘了它的存在 :) 59.121.142.9 08/06
cplusplus:真的要推 Modern C++ Design 140.115.217.14 08/06
StubbornLin:已搶購一空 目前無法購買 ....王八蛋= = 59.116.65.245 08/06
StubbornLin:被你們這群搶光光了 = =... 59.116.65.245 08/06
Solccp:我也大推MCD這本 剛出的時候就買了 XDD 220.143.98.71 08/06
hzp:我看得霧煞煞,不過,覺得是一篇很好的文章!我是新手 61.70.226.110 08/06
UNARYvvv:MCD!! 超推!! 買的當時剩兩本,居然站我旁邊的人 61.59.30.19 08/06
UNARYvvv:先把封面較乾淨的那本拿走 = = 61.59.30.19 08/06
ligod:請問MCD這本有中譯本嗎?220.132.157.119 08/07
※ 編輯: gocpp 來自: 59.120.214.120 (08/07 06:04)
UNARYvvv:有,「C++ 設計新思維」by 侯捷,於春景 61.70.137.117 08/07