![]() |
VOOZH | about |
c++程序設計教程
c++編程思想
c++大學教程
c++程序設計語言
數據結構算法與應用c++語言描述
c++標準模板庫——自修教程與參考手冊
泛型編程與STL
深度探索c++對象模型
設計模式—可復用面向對象軟體的基礎
重構—改善既有代碼的設計
Essential c++
Effective c++
More Effctive c++
C++ primer
前五本應該屬於入門書籍,後面的屬於學習難度比較大的,想提高C++的編程能力,看看這些書籍有好處。建議你把編程思想這本書多看看。多做練習題,對提高編程水平的幫助是很大的。
其實語言是相通的,一門語言學會了,學習其他語言就比較容易了。 業界有這樣一種說法,因為JAVA這門語言包含了C++的一些特性,掌握了C++,就等於掌握了JAVA的80%。
如果你想學習c/c++可以來這個群,首先是三三零,中間是八五九,最後是七六六,裡面有大量的學習資料。
C++ 書籍大匯
語言基礎入門:
適合有豐富C經驗,缺乏C++經驗的。不過我個人一直認為此書帶著過於強烈的C語言的痕跡,對於C++的學習未必是好事。
的參考書。
簡稱TC++PL,有其他語言的豐富經驗的。(也有人簡稱之為「TCPL」,但需與另一本《The C Programmer Language》區分開來)
Essential C++ 《C++基礎》
by Stanley B. Lippman
同樣是入門的基礎,也是由Stanley B. Lippman執筆的作品,研究語法÷語意再好不過的了。
Accelerated C++
by Andrew Koenig and Barbara E. Moo
夫妻一同的作品,Koenig夫婦可以說也是頂尖領域的專家,相比Barbara E. Moo比較注重教學,這本本人同晨星老大一樣沒有讀過,當時它的
副標題應該能說明一些內容了吧。
Practical Programming by Example 通過實例來實踐編程
這兩本薄一些,都是不錯的選擇。《Accelerated C++》本人沒有讀過,從各方面的評價來看,完全值得推薦。
以上的書籍都應該隨手查閱的,即使是將來,也有一些細節可能一下不能回憶依然需要查閱,然而這四本內容涉及程度有一定的交叉,可以選
擇而讀,個人認為和晨星的建議一樣:TC++PL是應該閱讀的。
進階A,經驗與慣用法:
深刻不過的了。
簡稱EC。C++程式設計師必讀!很多時候,我們說C++聖經不是指TC++PL,而是這一本。《The Pragmatic Programmer》一書中寫到:「一旦
你發現自己要參與C++項目的開發,趕快跑(不要走)到書店去購買Scott Mayer的《Effective C++》,可能還要《More Effective C++》」。
可見晨星對於Scott Meyers的這兩本推薦的程度了!
Exceptional C++ , More Exceptional C++ , Exceptional C++ Style
by Herb Sutter
這三本也是該歸在一起的,Herb Sutter是C++標準委員會的老大,現在人在微軟,他的書當然也是相當具有啟發意義的。
C++ Coding Standards: 101 Rules, Guidelines, and Best Practices 《C++ 編程規範》
by Herb Sutter and Andrei Alexandrescu
這本最近又看了一遍也是感到尤其深刻,案頭書的描述再好不過了,裡面豐富的名言,豐富的內涵,以及每次重複閱讀都能有新的發現,哎,
不稱之為經典也不幸哎!
個人認為此書應為C++程式設計師必備的案頭書。幾乎Effective系列和Exceptional系列都在這裡得到了總結。最新的模板、異常的業界經驗
都在這裡的到了體現。可能的唯一缺陷就是對一個新手而言,關於「為什麼這麼做」的問題,解釋的不夠。
我的看法是:如果你不理解其中的條款,記憶,並且照做;如果你理解其中的條款,我猜你一定會同意書中的觀點。我認為這本書中的內容至
少在2009年以前都不會過時,人們將廣為傳誦它制定的101條戒律。
還不知道他的簡稱,也許「101」會成為一個候選者?
晨星的評論似乎有點冗長,作為進階的Guidelines,絕對是首選。
進階B,STL與范型(GP):
作為標準庫的一部分,STL已經深入我們的開發生活,vector,list,deque,set,map等等都是我們首選的容器,iterator的機制已經無可厚非地
被接受,STL引入的范型也給我們打開了一閃窗。
聽說過STL嗎?這本書會教你最基本的,也是最重要的STL的使用。這本書,應該是必讀的。
會使用STL還不夠,還必須知道什麼時候選擇什麼STL組件,這是STL使用的必讀書。
這本書理論性較強,但是真的很嚴謹,而且並不是非常難懂。理解其中對於Concept的解釋,將是非常重要的。
這不是講述使用程序庫的,而是講述程序庫實現原理的。腸胃不好的,需要慢慢吸收。
在閱讀STL、Boost或者Loki的原始碼之前,請仔細閱讀本書,它可以減輕一些閱讀的煩惱。這本書是討論C++模板的權威。
C++ Template Metaprogramming : Concepts, Tools, and Techniques from Boost and Beyond
by David Abrahams and Aleksey Gurtovoy
本書沒有看到中文版,也是一本介紹模板元編程的專業參考書,十分細緻地講述了高級的模板技術,只是本書只有英文版的。
再進階A,底層機制:
The Annotated C++ Reference Manual
by Margaret A.Ellis and Bjarne Stroustrup
標準庫的全面解析,BS老大為標準庫量身定做的很OFFICAL的參考。
簡稱:ARM
Inside the C++ Object Model 《深度探索C++物件模型》
by Stanley Lippman
即使反覆學習了進階A,依然有許多語言實現方面的Puzzle問題,尤其是虛繼承,臨時對象等令人麻煩的深層問題值得學習,Lippman以一位專
家的身份給了我們一個深窺語言內部的可能,正如晨星所言,Lippman的書都有C和底層實現的影子。
C程式設計師讀後一定會覺得C++原來並不神秘。
再進階B,設計模式:
老實說不應該把設計概念的東西拿到這裡來,當時本書大多數以C++語言為例子,也是我們應該學習的。
GoF聽說過嗎?Gang of Four四人幫:)就是說的本文的四位作者,他們是設計模式總結的先驅,看了本書之後,OO的設計模式會深入里的大腦。
由於模式的粒度過大,所以不能被代碼化,只是一種概念,可以說是體現在項目中的靈魂。
還要提到的是最近John Vlissides去世了,在此我對他的逝世感到萬分的惋惜。
本書最近好好地研究過了,這裡終於要介紹Andrei Alexandrescu了,他是Real公司的項目經理,是GP模板技術的天才,他的高深模板技術影響
了BOOST以及全世界的模板怪傑,本書中他介紹他的庫Loki,雖然庫十分激進沒有實際用途,當時展現的絢爛的特技令人嘆服!同時本書是設計
模式用范型實現的經典展現,以及Policy設計模式在其中的極致應用,直接影響了BOOST的adaptor設計(7個Policy)甚至影響了標準庫的智能
指針項目(雖然最後被否認了,當時絕對是完美的實現方法)
簡稱MCD。在閱讀MCD之前,建議先閱讀一下《C++ Template》。
Thinking in C++ 《C++編程思想》
by Bruce Eckel
本書本人只是瞄了一眼,似乎第二本實用編程技術比較有用。
這本書及其中文版傳言好壞都有,沒有認真看過,不做評價,如果確有興趣,不妨嘗試一下該書。
C++必知必會
by
如同101一樣,當然也是權威的作品,只是沒有遇到好的天時而已。
如果早一年,這本書將是重量級的,然而它被101和《Exceptional C++ Style》蓋過一頭。
C++ Gotchas: Avoiding Common Problems in Coding and Design 《C++程序設計陷阱》
by
常規,曾經有許多人讓我去看此書,可惜一直沒有去看的精力,於是擱置許久,當時深刻了解此書中被引用內容的權威,好評也是不斷。
這又是一本我未曾讀過,而且廣受好評的書。
STL 源碼剖析
by 候捷
最近剛剛看了電子版,少有的國人之作,內容方面還可以,只是一些候氏方言令人頭疼。
這本書我剛到手,就被人」借」走,以至於到現在也沒有看過。看過這本書的朋友,可以給一個合適的評價。
其他高級:
如果有我一定屯個N本:)
《對象揭秘:Java、Eiffel和C++》
by
沒有看過,所以沒有資格作評論
你對C++不滿嗎?這本書可以部分地幫你完成抱怨的目標。也許它還可以讓你不迷信C++。
Imperfect C++ 《不完美的C++》
by Matthew Wilson
新書,本書介紹了許多新一代技術,以及C++很多有趣的技術,BS本來想把它加入C++ In Depths行列的,可惜最後說了一句:「如果本書再少
一些,也許我會考慮的。」就完了,但是無論如何本書都是一本好書,值得一看。
最後提一下C++ In Depths系列,這個是Bjarne Stroustrup發起的將一些比較有價值的有意義的好書歸成一類的選集。這裡是英文的介紹:
Accelerated C++: Practical Programming by Example, Andrew Koenig and Barbara E. Moo
Applied C++: Practical Techniques for Building Better Software, Philip Romanik and Amy Muntz
The Boost Graph Library: User Guide and Reference Manual, Jeremy G. Siek, Lie-Quan Lee, and Andrew Lumsdaine
C++ Coding Standards: 101 Rules, Guidelines, and Best Practices, Herb Sutter and Andrei Alexandrescu
C++ In-Depth Box Set, Bjarne Stroustrup, Andrei Alexandrescu, Andrew Koenig, Barbara E. Moo, Stanley B. Lippman, and Herb
Sutter
C++ Network Programming, Volume 1: Mastering Complexity with ACE and Patterns, Douglas C. Schmidt and Stephen D. Huston
C++ Network Programming, Volume 2: Systematic Reuse with ACE and Frameworks, Douglas C. Schmidt and Stephen D. Huston
C++ Template Metaprogramming: Concepts, Tools, and Techniques from Boost and Beyond, David Abrahams and Aleksey Gurtovoy
Essential C++, Stanley B. Lippman
Exceptional C++: 47 Engineering Puzzles, Programming Problems, and Solutions, Herb Sutter
Exceptional C++ Style: 40 New Engineering Puzzles, Programming Problems, and Solutions, Herb Sutter
Modern C++ Design: Generic Programming and Design Patterns Applied, Andrei Alexandrescu
More Exceptional C++: 40 New Engineering Puzzles, Programming Problems, and Solutions, Herb Sutter
For more information, check out the series web site at