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