1.The C++ Programming Lanuage, by Bjarne Stroustrup, Speical 3rd edition,Addison Wesley
這是C++創始人B教主之力作,描述C++語言之經典一書。這本書第三版是97年出的,B教主老人家給這本書開了個網頁http://www.research.att.com/~bs/3rd.html,2000年,又出了個Special 3rd edition,和97年的第三版相比,多了兩個Appendix,這兩章在網頁上可以下載,除此之外,還改了1000多個小錯誤。我說B教主你老人家小錯誤犯的也太多了吧,為什麼不像Knuth老人家學習學習,人家多嚴謹那。要把這本書當參考手冊,還得去買2000年那個版本的。
B教主總共寫了三本書,The C++ Programming Language,The Design and Evolution of C++,The Annotated C++ Reference Manual,加上翻譯本合起來賣了上百萬多份那,厲害厲害。
2. The C++ Standard, Wiley,ISBN:0-470-84674-7
這本書是C++語言標准,C++的語法太繁瑣,所以有些吃不准的地方,還是得翻這本書。厚厚一本書,700多頁,但是用的紙非常輕,拿起來不沉。就是裝訂的不好,書脊有點松松散散,讓人擔心看多了某天書會散架。
3. C++ Templates, The Complete Guide,by Vandevoorde, Josuttis,Addison Wesley, ISBN:0-201-73484-2
之所以這麼重視這本書,是因為自1987年以來,C++的開發重點就不是面向對象了,而是templates, static polymorphism, generic programming, multiparadigm programming. 掌握好了,C++的template的威力是巨大的。
這本書的文筆非常簡潔易懂,書的排版也很好,讀起來非常舒服。
4. The C++ Standard Library,A Tutorial and Reference,by Josuttis,Addison Wesley,ISBN: 0-201-37926-0
這本書的作者,也是上本書的作者之一,寫的非常易懂。可能因為作者是個德國人,英語非母語者寫的英語最好懂。
個人認為是講STL最好的一本書,C++的標准庫全是用template設計的,沒多少OO的影子。任何一個學C++的,必須學習STL,學習STL,這本書最好.
5.Modern C++ Design,Generic Programming and Design Patterns Applied, by Andrei Alexandrescu,Addison Wesley, ISBN: 0-201-70431-5
這本書用了很多玄之又玄的技術,讀起來很吃力,有不少技術在C++ Templates The Complete Guide一書中都講過,建議還是先讀C++ Templates。作者的名氣是很大的,一個極為優秀的程序員,不過書寫的不流暢。
6.C++ Template Metaprogramming, by Abrahams, Gurtovoy,Addison Wesley, ISBN: 0-321-22725-5
我個人經歷,讀Modern C++ Design一書讀來吃力,但至少還勉勉強強跟的上,讀這本書根本就如同讀天書,努力三天,身心受創,吐血而去,發誓苦練C++內功,將來回頭算賬。
這裡說兩句別的,以上兩本書都出自Addison Wesley的Indepth系列,網址在這裡:http://www.awprofessional.com/series/indepth/
這個系列出的書,都是好書,如Exceptional C++, Exceptional C++ Style, More Exceptional C++, C++ Gotchas等等,因為沒有讀過,無法發表評論,但是這個系列的書都值得一讀,甚至反復閱讀。
7.Effective C++, More Effective C++, by Scott Meyers
這兩本書很有名很經典,歷史也很悠久,Scott Meyers寫書時,template編程還不流行,所以書裡講的大多涉及傳統OO. Scott Meyers的文筆非常好,讀起來很舒服。
8.Inside the C++ Object Model, by Stanley B. Lippman
也是很有名的書了,很仔細的描述了C++程序運行時,計算機裡到底發生了什麼事,這本書看完,讀一般的C++程序如行雲流水,當然,高級template應用例外。
9.The Design and Evolution of C++, by Bjarne Stroustrup
B教主另一大作,描述了C++的歷史,及語言特性的由來,對喜歡刨根問底想明白C++為什麼是這樣的人很有參考價值。
10.C++ Primer, 4th edition, by Lippman, Lajoie, Moo.
名書,第四版封面上寫著,超過450 000個程序員,通過本書前版學習C++. 好多版稅啊。我剛學C++時用第二版來做參考用。如果有Java, C, C#編程經驗但是沒用過C++的可以用這本書做入門書。