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

學習建議

  1. 按順序學習:Part 1 → Part 2 → Part 3 → Part 4 → Part 5,每個章節都建立在前一章的基礎上。
  2. 動手實作:每個 .cpp 檔案都可以直接編譯執行,建議親手輸入並觀察結果。
  3. 完成練習題:每章 .md 結尾都有練習題,嘗試獨立完成後再參考範例。
  4. 善用編譯器警告:編譯時加上 -Wall -Wextra 旗標,養成良好習慣。

環境需求

  • C++17 相容編譯器(g++ 7+ / clang++ 5+ / MSVC 2017+)
  • 建議作業系統:macOS / Linux / Windows (WSL)
  • 建議編輯器:VS Code + C/C++ 擴充套件 或 CLion