以 C++17 標準為主的繁體中文完整教材,從零基礎到進階主題。
每個章節包含 Markdown 概念說明 + 可直接編譯執行的.cpp範例程式。
編譯方式
所有範例程式皆可使用以下指令編譯與執行:
g++ -std=c++17 -Wall -o output 檔名.cpp
./output
若使用 clang++:
clang++ -std=c++17 -Wall -o output 檔名.cpp
./output
教材目錄
Part 1:入門基礎
| 章節 | 主題 | 說明 |
|---|---|---|
| Ch01 | 認識 C++ 與開發環境 | 什麼是 C++、編譯器安裝、Hello World |
| Ch02 | 變數與資料型別 | int/double/char/bool、const、auto、運算子 |
| Ch03 | 控制流程 | if/else、switch、for/while 迴圈 |
| Ch04 | 函式 | 函式定義、參數傳遞、多載、遞迴 |
| Ch05 | 陣列與字串 | C 陣列、std::array、std::string |
| Ch06 | 指標與參考 | 指標、參考、指標算術 |
Part 2:物件導向程式設計
| 章節 | 主題 | 說明 |
|---|---|---|
| Ch07 | 結構體與列舉 | struct、enum、enum class |
| Ch08 | 類別與物件 | class、存取控制、this、static 成員 |
| Ch09 | 建構子與解構子 | 建構子種類、Rule of Three/Five/Zero、RAII |
| Ch10 | 繼承與多型 | 繼承、虛擬函式、抽象類別 |
| Ch11 | 運算子多載 | 運算子多載、friend 函式 |
Part 3:泛型程式設計與 STL
| 章節 | 主題 | 說明 |
|---|---|---|
| Ch12 | 模板程式設計 | 函式模板、類別模板、特化 |
| Ch13 | STL 容器 | vector、map、set、unordered 容器 |
| Ch14 | STL 演算法與迭代器 | 迭代器、sort、find、transform 等 |
| Ch15 | Lambda 與函式物件 | Lambda 表達式、std::function |
Part 4:現代 C++
| 章節 | 主題 | 說明 |
|---|---|---|
| Ch16 | 記憶體管理與智慧指標 | unique_ptr、shared_ptr、weak_ptr |
| Ch17 | 移動語意 | 右值參考、std::move、完美轉發 |
| Ch18 | 例外處理 | try/catch、自定例外、noexcept |
| Ch19 | 命名空間與多檔案專案 | namespace、標頭檔分離、Makefile |
| Ch20 | C++17 特性精選 | structured bindings、optional、filesystem |
Part 5:進階主題
| 章節 | 主題 | 說明 |
|---|---|---|
| Ch21 | 型別推導 | auto、decltype、trailing return type |
| Ch22 | constexpr 與編譯期計算 | constexpr 函式、編譯期計算 |
| Ch23 | 多執行緒程式設計 | std::thread、mutex、async/future |
| Ch24 | 設計模式與最佳實踐 | Singleton、Observer、Strategy、SOLID |
學習建議
- 按順序學習:Part 1 → Part 2 → Part 3 → Part 4 → Part 5,每個章節都建立在前一章的基礎上。
- 動手實作:每個
.cpp檔案都可以直接編譯執行,建議親手輸入並觀察結果。 - 完成練習題:每章
.md結尾都有練習題,嘗試獨立完成後再參考範例。 - 善用編譯器警告:編譯時加上
-Wall -Wextra旗標,養成良好習慣。
環境需求
- C++17 相容編譯器(g++ 7+ / clang++ 5+ / MSVC 2017+)
- 建議作業系統:macOS / Linux / Windows (WSL)
- 建議編輯器:VS Code + C/C++ 擴充套件 或 CLion