英文原文:Must read C++ book list,翻譯:iteye
多讀一些優秀的書籍,對於開發者穩固程式設計基礎、提高程式設計技能有很大幫助。但是,大多時候,初學者不知道應該讀什麼書入門,有一定基礎的開發者不知道如何進階。
本文總結了一個C++優秀書籍清單,希望能夠為你帶來一定的幫助。這些書大多數都有中文版,並且可以很容易在網上找到。
階段 1
這是一本內容不多但很實用的C++入門書籍,強調快速上手與理解C++程式設計。本書主要圍繞一系列逐漸複雜的程式問題,以及用以解決這些問題的語言特性展開講解。你不只學到C++的函式和結構,也會學習到它們的設計目的和基本原理。
本書對C++基本概念、技術、以及現代C++程式設計風格進行了全面而且權威的闡述,是C++初學者的最佳指南;本書可以幫助你編寫實用的程式,而無需首先精通每個語言細節。對於中高階程式設計師,本書也是不可或缺的參考書。
階段 2
《Effective C++》和《More effective C++》
作者是Scott Meyers。你應該熟讀它們,並清楚地理解每個專案。該書圍繞55條準則,每一條都介紹了一個可讓你寫出更好的C++程式程式碼的方法,並以特別設計過的例子詳加討論。
《Exceptional C++(C++程式設計剖析)》和《More exceptional C++》
這兩本書中都包含了40個C++程式設計問題,這些問題會讓你磨練自己的技能,最終成為優秀的C++程式設計師。這些問題是Herb Sutter精心挑選,與ISO/ANSI C++官方標準相一致,幫助程式設計師在設計、架構和編碼過程中保持良好的風格,從而使編寫的C++軟體更健壯、更高效。
【更新】:根據微博網友反饋,已經原來“階段3”的兩本書放到“階段5”,故而總階段數減到4個。
@左耳朵耗子: 挺可靠的。另,我認為,階段3的書應該放在階段5。//@非魔: @左耳朵耗子 這個清單科學嗎? //@程式設計師的那些事: C++程式設計師的閱讀清單
階段 3
《The C++ standard library(C++標準程式庫)》
這是標準模板庫字典,你可以在本書中找到STL相關的一切知識。本書焦點放在標準模板庫、檢查容器、迭代器、函式物件和STL演算法上。每一個元素都有深刻的呈現,包括其介紹、設計、運用例項、細節解說、陷阱、意想不到的危險,以及相關類別和函式等。
這是Scott Meyers的第三本C++專著,也是學習STL最權威的書籍。作者對書中的50個指導方針都作了詳盡的分析,並配以示例。通過這些規則,C++開發者可以最大限度地使用STL。
《Generic programming and the STL(泛型程式設計與STL)》
本書闡述了泛型程式設計的核心理念:concepts(概念)、modeling(模型)和refinement(改善),併為你展示這些觀念如何匯出STL的基礎概念:iterators(迭代器)、containers(容器)和function objects(函式物件)。按照本書所述,你可以把STL想象成一個由concepts組成的library,你將學習到STL正式結構並理解其強大的優勢。
階段 4
《Inside the C++ object model(深度探索C++物件模型)》
本書專注於C++物件導向程式設計的底層機制,包括結構式語意、臨時性物件的生成、封裝、繼承,以及虛擬——虛擬函式和虛擬繼承,幫助你理解程式的底層實現,以便寫出更高效的程式碼。
《The design and evolution of C++(C++語言的設計與演化)》
本書作者也是C++語言的設計者Bjarne Stroustrup,作者在書中綜合性地介紹了C++的發展歷史,C++中各種重要機制的本質意義和設計背景,這些機制的基本用途和使用方法,討論了C++所適合的應用領域及其未來的發展前景,既沒有忽略關鍵性的詳情,又沒有過多地陷入技術細節。
作者為Herb Sutter。本書同樣提出了40個C++風格相關的問題,對一些至關重要的C++細節和相互關係提出了新的見解,為當今的關鍵C++程式設計技術(如泛型程式設計、STL、異常安全等)提供了新的策略,幫助開發者在開銷與功能之間、優雅與可維護性之間、靈活性與過分靈活之間尋找完美的平衡點。
這是一本關於C++模板的完整的參考手冊和教程,它強調模板的使用實踐,包含了現實世界中的例子。每個C++程式設計師都應該好好讀一讀這本書。
《Modern C++ design(現代C++設計)》
作者Andrei Alexandrescu為C++程式設計師開啟了一個新的局面。本書提供了一些針對軟體設計的前沿方法,如聯合設計模式、泛型程式設計,使程式設計師可以編寫有表現力的、靈活的、高度可重用的程式碼。
《Thinking in C++(C++程式設計思想)》
C++ 領域權威著作,介紹了C++實用的程式設計技術和最佳的實踐方法。