本文內容來自國外著名編程問答網站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(英文)ide
- 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 共兩卷,第二卷主要將標準庫,但仍是不錯的。
- 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++的對象模型。