C++必讀書籍推薦

Web開發者發表於2014-01-05

  本文內容來自國外著名程式設計問答網站Stackoverflow評選的C++推薦書單!推薦大家看原版英文,但這些書大部分也都有中文版!

 手冊類 – 所有級別

  • C++程式設計語言(The C++ Programming Language) 作者:Bjarne Stroustrup(更新到C++11) C++之父寫的經典C++書籍。內容覆蓋C++的所有東西,從語言核心到標準庫、程式設計正規化和語言哲學(這使得最新版突破1千頁)。2013年5月出版的第四版涵蓋了C++11的內容。

電子書:第三版(中文)第四版(英文)

  • C++標準程式庫(C++ Standard Library Tutorial and Reference) 作者:Nicolai Josuttis (更新到C++11) 這本書是C++標準庫(STL)的引導和手冊。 2012年4月發行的第二版涵蓋了C++11。

電子書:第一版(中文)第一版(英文)第二版(英文)

  • The C++ IO Streams and Locales 作者:Angelika Langer and Klaus Kreft 除了這本書,市面上基本沒有講解streams and locales的書。

電子書:96年版(英文)

  C++ 11手冊:

  • The C++ Standard (INCITS/ISO/IEC 14882-2011) 作者:C++標準委員會 這當然是C++最權威的標準。要注意的是,C++標準是提供給有足夠精力和時間的專家級使用者研究用的。國內估計很少有人看,在國外一般它的第一個發行版也非常貴($300+ US),國外有人會買現在價值$30US的電子發行版。

電子書:N3225(英文)

  • Overview of the New C++ (C++11/14) 作者:Scott Meyers(更新到C++11/C++14) 這是Scott Meyers開設的一個為期3天的C++課程的教材。Scott Meyers是C++社群最受尊敬的作者之一。雖然內容比較簡短,但質量極高。

電子書:2011年版(英文)

 初級

  入門

  如果你是一個無程式設計經驗的C++初學者,或者有其它語言經驗的C++初學者,那強烈推薦下面的書籍。

  • C++ Primer 1 作者:Stanley Lippman, Josée Lajoie, and Barbara E. Moo (更新到C++11) 近1千頁,本書透徹的介紹了C++,以淺顯和詳細的方式講到C++語言差不多所有內容。2012年8月發行的第五版包含C++11的內容。

電子書:第三版(中文)第四版(中文)第五版(英文版)

  • Accelerated C++ 作者:Andrew Koenig and Barbara Moo 這本書覆蓋了和C++ Primer一樣的內容,但厚度只有C++ Primer的四分之一。這主要是因為本書面向的不是程式設計的初學者,而是有其它語言經驗的C++初學者。對於初學者,本書學習曲線稍顯陡峭,但對於能克服 這一點的學習者而言,它確實非常緊湊的介紹了C++這門語言。

電子書:中文版英文版

  • C++程式設計思想(Thinking in C++) 作者:Bruce Eckel 共兩卷,第二卷主要將標準庫,但還是不錯的。

電子書:第二版V1(英文版)第二版V2(英文版)第二版V1(中文版)第二版V2(中文版)

  • C++程式設計原理與實踐 (Programming: Principles and Practice Using C++ )作者:Bjarne Stroustrup C++之父寫的C++入門書籍。本書面向沒有程式設計經驗的初學者,但相信有程式設計經驗的人也能從本書中學到不少東西。

電子書:中文版

  最實用

  • Effective C++ 作者:Scott Meyers 本書以瞄準成為C++程式設計師必讀的第二本書籍而寫,Scott Meyers成功了。早期的版本面向從C語言轉過來的程式設計師。第三版修改為面向從類似Jave等語言轉來的程式設計師。內容覆蓋了50多個很容易記住的條款, 每個條款深入淺出(並且有趣)講到了你可能沒有考慮過的C++規則。

電子書:第二版(英文)第三版(英文)第三版(中文)

  • Effective STL 作者:Scott Meyers 講解方式和Effective類似,但內容主要面向於STL。

電子書:中文版英文版

  中級

  • More Effective C++ 作者:Scott Meyers 更多(深入)關於C++的規則。沒有前一本Effective C++重要。但同樣值得一讀。

電子書:中文版

  • Exceptional C++ 作者:Herb Sutter 講解方式為提出並解決一系列的C++難題。本書極其透徹的講解了C++資源管理、異常安全和RAII。同時覆蓋了一些較為深入的技術,比如:編譯防火牆(pimpl idiom)、名字查詢規則,、好的類設計和C++記憶體模型。

電子書:中文版英文版

  • More Exceptional C++ 作者:Herb Sutter 講到了Exceptional C++沒有涉及到的更高階的異常安全技術, 同時討論了高效的C++ OOP方式和如何正確的使用STL。

電子書:中文版英文版

  • Exceptional C++ Style 作者:Herb Sutter 討論了泛型程式設計、最優化和資源管理。本書出彩之處在於談到了如何用非成員函式和單職責原則編寫模組化的C++程式碼。

電子書:中文版

  • C++程式設計規範(C++ Coding Standards) 作者:Herb Sutter and Andrei Alexandrescu “程式設計規範”這裡並不是”程式碼縮排要用幾個空格”。這本書包含了101個例子、慣用法、缺陷,通過這些可以幫助你編寫正確、清晰高效的C++程式碼。

電子書:中文版

  • C++ 模板完全指南(C++ Templates: The Complete Guide)作者:David Vandevoorde and Nicolai M. Josuttis 本書是關於C++11之前的模板的。它覆蓋了從非常基礎到最高階的超程式設計知識,解釋了模板工作原理的細節(概念和實現方式)。並且討論了大量的缺陷。附錄中包含關於ODR和過載的精彩總結。

電子書:中文版英文版

  高階

  • C++設計新思維-泛型程式設計與設計模式之應用(Modern C++ Design ) 作者:Andrei Alexandrescu 泛型程式設計鼻祖級書籍。本書先介紹了基於策略(policy-based)的設計、type lists 和泛型程式設計基礎, 然後講到了許多有用的設計模式(包括small object allocators, functors, factories, visitors, and multimethods) 如何被高效、模組化、清晰的泛型程式碼實現。

電子書:中文版英文版

  • C++模板超程式設計(C++ Template Metaprogramming)作者:David Abrahams and Aleksey Gurtovoy 更多的是講解boost::mpl,想要深入理解mpl的可以看一下。

電子書:中文版

  • C++ Concurrency In Action 作者:Anthony Williams 這本書主要內容是C++11的併發支援,包括執行緒庫、原子(atomics)庫、記憶體模型、鎖和互斥量。同時也講解了開發和除錯多執行緒程式的一些難題。

電子書:英文版

  • Advanced C++ Metaprogramming 作者:Davide Di Gennaro 前C++11時代TMP技術的手冊級書籍。本書更側重於工程實踐。裡面有大量的可能幾乎無人知道但很實用的技術寫成的程式碼。本書可能比 Alexandrescu的書更值得讀。對於資深的開發者來說,這是一個學習C++暗角技術的絕佳機會,通常這些技術要通過資深的程式設計經歷才能獲取。

電子書:沒找到

  經典 / 古老

  注意: 下列書中的部分內容可能有些過時

  • C++的設計與演化(The Design and Evolution of C++ )作者:Bjarne Stroustrup 如果你想知道為什麼C++是今天這個樣子,那麼這本書將給你答案。本書覆蓋C++標準化之前的一切東西。

電子書:中文版

  • C++沉思錄(Ruminations on C++) 作者:Andrew Koenig and Barbara Moo 本書不是為了講解具體的C++技術細節,而是如何通過C++編寫出色的OO程式碼。

電子書:中文版

  • Advanced C++ Programming Styles and Idioms 作者:James Coplien 講解了一些C++特有的慣用法. 它確實是一本不錯的書籍,如果時間閒暇也可一讀。不過它確實很老了,可能有些不符合現代的C++。

電子書:中文版

  • 大規模C++程式設計(Large Scale C++ Software Design) 作者:John Lakos 本書介紹瞭如何管理大規模C++軟體專案的技術。很值得一讀,除了有些過時以外。它是在C++98以前寫的,缺少了好多對大規模專案重要的特性(比如名字空間)。假如你工作在一個大規模的C++專案中,你可能想要讀它, 不過你需要注意那些不適用甚至錯誤的技術點。

電子書:中文版

  • 深度探索C++物件模型 (Inside the C++ Object Model ) 作者:Stanley Lippman 如果你想知道虛擬函式是如何實現、多繼承時基類是如何在記憶體中排布的和所有影響效能的東西,那麼這本書會給你答案。不過這本書有好多低階的拼寫排版錯誤,英文原版錯誤更多,侯捷翻譯的版本中註明和糾正了很多,但本書絕對值得一讀,你將明白編譯器如何實現C++的物件模型。

電子書:中文版英文版

相關文章