编程语言
Python、C、C++、Java、JavaScript、TypeScript、Go、R 与 Haskell 教程,从入门语法到高级技巧。
Ch09:建構子與解構子(Constructor & Destructor)
1. 理解各種建構子的種類與用法(預設、帶參數、委託、轉換、explicit) 2. 掌握成員初始化列表的語法、初始化順序與「為何優先於賦值」 3. 理解解構子的角色與解構順序 4. 掌握拷貝建構子與拷貝賦值運算子,分辨深拷貝 vs 淺拷貝 5. 深入理解 Rule of Three / Five / Zero 6. 理解 RAII 哲學,並知道它為何是 C++ 資源管理的基石 7. 學會使用 = default 與 = delete
阅读文章 →Ch10 — 繼承與多型
物件導向三大支柱之二:繼承 Inheritance 與 多型 Polymorphism。 繼承讓我們在既有類別的基礎上擴充功能;多型讓同一介面對不同型別產生不同行為。 這兩個機制是 C++ 設計大型可擴充系統的核心,但也是初學者最容易誤用的地方。
阅读文章 →Ch11 — 運算子多載
運算子多載 Operator Overloading 讓自定義型別也能使用 +、、<<、 等運算子, 使程式碼更直覺、更貼近數學或自然語言。 它本質上只是「換個語法的函式呼叫」——a + b 其實就是呼叫 operator+a, b。
阅读文章 →Ch12:模板程式設計
說明 為什麼需要模板,並比較模板與「複製貼上多份程式碼」、巨集(macro)、void 三種泛型手段的優劣 撰寫 函式模板,理解 模板引數推導(template argument deduction) 的規則與限制 使用 明確模板引數、多型別參數、非型別模板參數(NTTP) 撰寫 類別模板,並能把成員函式定義在類別外 區分並實作 完整特化(full specialization) 與 部分特化(partial specializatio
阅读文章 →Ch13:STL 容器
說明 STL 的三大支柱(容器、迭代器、演算法)如何協作,以及為何如此設計 理解每種容器的 底層結構、記憶體佈局與時間複雜度(BigO) 熟練使用 序列容器:vector、deque、list、forwardlist、array 熟練使用 關聯容器:map、multimap、set、multiset(紅黑樹、有序) 熟練使用 無序容器:unorderedmap/unorderedset(雜湊表、負載因子、自訂雜湊) 熟練使用 容器配接器
阅读文章 →Ch14 — STL 演算法與迭代器(Algorithms & Iterators)
迭代器是連接容器與演算法的橋樑。STL 演算法透過迭代器操作資料,讓你無需了解容器的內部實作,就能對資料進行排序、搜尋、轉換等操作。學會「用演算法表達意圖」而非「手寫迴圈」,是寫出現代、正確、高效 C++ 的關鍵一步。
阅读文章 →Ch15 — Lambda 與函式物件(Lambda & Function Objects)
函式物件(functor)與 Lambda 表達式是 C++ 中實現「可呼叫物件(callable)」的兩大方式。它們讓你能把「行為」當作參數傳遞、儲存、組合,是使用 STL 演算法、設計回呼(callback)與策略模式不可或缺的工具。掌握 Lambda,等於拿到了現代 C++ 的萬用鑰匙。
阅读文章 →Ch16 — 記憶體管理與智慧指標(Memory Management & Smart Pointers)
手動記憶體管理是 C++ 最強大也最危險的能力。現代 C++ 透過智慧指標(smart pointers)把資源管理自動化,消除記憶體洩漏、懸空指標、重複刪除等一整類最難除錯的錯誤。本章的核心訊息只有一句話:在現代 C++ 中,你幾乎不該再手寫 new 與 delete。
阅读文章 →Ch17 — 移動語意(Move Semantics)
移動語意是 C++11 最重要的革新之一。它讓程式能「搬走」資源而非「複製」,把處理大型物件(容器、字串、檔案緩衝)的成本從 On 降到 O1。理解移動語意,是理解現代 C++ 為什麼又快又安全的關鍵。
阅读文章 →Ch18 — 例外處理(Exception Handling)
例外處理提供一種結構化的錯誤處理機制:把「正常邏輯」與「錯誤處理」分離,讓錯誤無法被默默忽略,並與 RAII 結合保證資源在任何路徑下都被釋放。本章不只教你語法,更教你何時該用、何時不該用例外。
阅读文章 →Ch19:命名空間與多檔案專案
理解命名空間(namespace)的用途,知道它如何避免名稱衝突(name collision) 掌握命名空間的定義、巢狀命名空間(含 C++17 A::B::C 語法)與命名空間別名 區分 using 指令(directive)與 using 宣告(declaration),並理解為何不可在標頭檔使用 using namespace 認識匿名(unnamed)命名空間與內部連結(internal linkage) 初步認識 inlin
阅读文章 →Ch20:C++17 特性精選
掌握結構化綁定(structured bindings):從 pair/tuple/struct/array 解構,理解拷貝 vs 參考的差異 學會 if/switch 帶初始化語句,把變數作用域限制在分支內 理解 if constexpr 的編譯期分支,並用於樣板程式設計 熟練 std::optional(hasvalue/value/valueor 與 badoptionalaccess 陷阱) 熟練 std::variant(ho
阅读文章 →第二十一章:型別推導(Type Deduction)
1. 理解 auto 的三種推導情境(by value、auto&、auto&&)及其與 const、參考的交互 2. 看穿 auto 與大括號初始化(std::initializerlist)的陷阱 3. 掌握 decltype 的推導規則,並區分 decltypename 與 decltypeexpression 的關鍵差異 4. 學會使用 decltypeauto 進行回傳型別的完美轉發 5. 理解尾端回傳型別(trailing
阅读文章 →第二十二章:constexpr 與編譯期計算
1. 清楚區分 const(執行期常數)與 constexpr(編譯期常數) 2. 宣告並使用 constexpr 變數、函式與建構子(literal type) 3. 了解 C++11 → C++14 → C++17 對 constexpr 函式逐步放寬的限制 4. 判斷 constexpr 函式何時在編譯期執行、何時退化為執行期函式 5. 使用 if constexpr(C++17)做編譯期分支與死碼消除(dead code eli
阅读文章 →第二十三章:多執行緒程式設計(Multithreading)
1. 解釋並行(concurrency)與平行(parallelism)的差異,並判斷何時值得引入多執行緒 2. 使用 std::thread 以函式、lambda、成員函式、函式物件建立執行緒,並正確地 join / detach 3. 理解 joinable 狀態,避免「可 joinable 的執行緒被銷毀」導致 std::terminate 4. 正確地以值、std::ref、std::move 傳遞參數給執行緒 5. 說明資料競
阅读文章 →第二十四章:設計模式與最佳實踐
1. 解釋 SOLID 五大原則,並用 C++ 範例說明每一條如何改善設計 2. 區分創建型、結構型、行為型三大類設計模式 3. 實作執行緒安全的 Singleton(Meyers' Singleton),並說出它的批評與替代方案(依賴注入) 4. 實作 Observer 模式(push/pull、傳統繼承版與 std::function 現代版) 5. 實作 Strategy 模式(類別繼承版與 std::function 版),並判
阅读文章 →完整 C++ 教材 — 由淺到深
以 C++17 標準為主的繁體中文完整教材,從零基礎到進階主題。 每個章節包含 Markdown 概念說明 + 可直接編譯執行的 .cpp 範例程式。
阅读文章 →🎓 C++ Programming Curriculum COMPLETE
This document provides a comprehensive overview of the completed C++ programming curriculum based on "The C++ Programming Language, 4th Edition" by Bjarne Stroustrup.
阅读文章 →🧩 Capstone Project: Mini Standard Template Library Implementation
This capstone project demonstrates mastery of all C++ concepts learned throughout the curriculum by implementing simplified versions of key STL components. You'll build your own versions of fundamental data structures an
阅读文章 →📚 Additional Code Examples
This directory contains additional code examples that demonstrate various C++ concepts and techniques beyond the main curriculum. These examples are designed to reinforce learning and provide practical applications of C+
阅读文章 →✅ FINAL CURRICULUM ANALYSIS COMPLETE VERIFICATION
Based on the provided curriculum structure, I have conducted a comprehensive analysis to verify completeness:
阅读文章 →🚨 Missing Content Analysis C++ Curriculum
Based on the curriculum overview provided, here's a comprehensive analysis of what's missing and what's been completed.
阅读文章 →Chapter 16: Classes
After completing this chapter, you will: Master advanced class design principles Understand constructors, destructors, and assignment operators Learn copy/move semantics Master operator overloading Understand access cont
阅读文章 →Chapter 17: Classes and Constructors
After completing this chapter, you will: Master advanced class design principles Understand constructor types and initialization Learn about copy and move semantics Master RAII and resource management Understand class hi
阅读文章 →