分級閱讀路線圖
階段 0:零基礎入門 (語法 + 基礎 STL)
- 《C++ Primer》第 5 版 (Stanley Lippman / Josée Lajoie / Barbara Moo) —— 唯一指定入門書。涵蓋 C++11、習慣用法、大量實例、習題詳解。厚但必讀,跳過即坑。
- 《C++ 程式設計:原理與實踐》 (Bjarne Stroustrup) —— 設計者親寫,適合大一教材/自學,強調良好習慣與設計思維。
階段 1:進階必修 (習慣用法、現代 C++、標準庫)
- 《Effective C++》第 3 版 (Scott Meyers) —— 55 條具體建議,C++98/03 時代經典,理解「為什麼」的基石。
- 《Effective Modern C++》 (Scott Meyers) —— 42 條 C++11/14 專項:型別推導、`auto`、移動語意、智慧指標、Lambda、並發。現代 C++ 必讀。
- 《C++ Standard Library》第 2 版 (Nicolai Josuttis) —— STL/容器/演算法/迭代器/串流/執行緒庫 完整參考,案頭常備字典。
- 《C++ Concurrency in Action》第 2 版 (Anthony Williams) —— 執行緒、原子操作、記憶體模型、無鎖程式設計、C++17/20 平行演算法、協程預覽。並發領域聖經。
階段 2:專精領域 (模板、元編程、物件模型、效能)
- 《C++ Templates》第 2 版 (David Vandevoorde / Nicolai Josuttis / Douglas Gregor) —— 模板完整理論與實踐:參數推導、特化、SFINAE、Concepts、變參模板、元編程、外部實例化。模板領域唯一權威。
- 《Inside the C++ Object Model》 (Stanley Lippman) —— 編譯器如何佈局物件:虛函數表、虛基類指標、多重繼承調整、RTTI、模板實例化。讀懂它,除錯優化不再盲目。
- 《Optimizing C++》 (Steve Heller / Kurt Guntheroth) —— 效能分析方法論、Cache 友善、分支預測、SIMD、分配器、鎖自由資料結構、測量工具 (perf/VTune)。
階段 3:大師視野 (設計哲學、架構、標準演進)
- 《The C++ Programming Language》第 4 版 (Bjarne Stroustrup) —— 設計者全景敘述:語言特性動機、標準庫架構、設計原則、C++11 新特性。非參考書,是「思想傳承」。
- 《Design and Evolution of C++》 (Bjarne Stroustrup) —— 歷史視角:每個特性為何加入、為何拒絕、委員會如何博弈。理解語言演進邏輯,預判未來走向。
- 《Exceptional C++》三部曲 (Herb Sutter) —— 工程決策框架,見前文詳細介紹。
階段 4:前沿探索 (C++20/23/26 新特性、提案追蹤)
- 官方標準文檔:isocpp.org (免費草案)。
- 提案追蹤:wg21.link/Pxxxx (如 P0784 模組、P1102 概念、P2300 發送者/接收者)。
- 會議影片:CppCon / CppNow / Meeting C++ YouTube 頻道,最新技術最快落地。
避坑指南:別買這些書
- 書名含「21 天/24 小時/從入門到精通/速成」—— 深度極淺、錯誤百出、教壞習慣。
- 出版超過 10 年未再版 (C++11 前)—— 教 `auto_ptr`、`NULL`、手動 `new/delete`、C 風格字串,嚴重過時。
- 國內作者「自講自話」無國際社群認可—— 可能混入個人誤解、非標準擴充、錯誤範例。
結語:讀書是手段,寫碼是目的
書籍提供地圖,編譯器是試金石。每讀完一章,必在專案中嘗試應用;每遇一個編譯錯誤/運行崩潰/效能瓶頸,回頭查書、查標準、查汇编。C++ 精通之路 = 高質量輸入 (經典書/標準/提案) × 大量刻意練習 (寫碼/重構/Review) × 時間複利。