從 Java 轉型 C++ 開發,面臨的核心挑戰在於手動內存管理、複雜的對象生命週期、模板元編程、多態機制底層實現等 Java 運行時屏蔽的底層細節。C++ 被公認為「最難掌握的主流語言」,建議預留 2 年系統性學習期。
| 領域 | 關鍵知識點 |
|---|---|
| 內存管理 | 無 GC、new/delete、智能指針 (unique_ptr/shared_ptr/weak_ptr)、RAII 慣用法 |
| 對象模型 | 構造/析構順序、虛函數表、多態實現、對象切片、移動語義 (C++11) |
| 模板編程 | 模板特化、變參模板、SFINAE、Concepts (C++20)、元編程技巧 |
| 類型系統 | 四種 cast、RTTI、const 正確性、引用崩塌、右值引用 |
| 並發與底層 | 線程同步、原子操作、內存模型、內聯彙編、鏈接模型 |
| 標準庫 | STL 容器/算法/迭代器、iostreams、filesystem、coroutine (C++20) |
接受「頻繁踩坑、編譯報錯、運行時崩潰」是常態。善用 AddressSanitizer、Valgrind、Clang-Tidy 等工具輔助調試。C++ 的掌握度與工程經驗成正比,無捷徑,唯有大量閱讀優秀代碼、編寫生產級代碼、復盤錯誤。