S SmartDocs

Linguagens de programação

Tutoriais de Python, C, C++, Java, JavaScript, TypeScript, Go, R e Haskell — da sintaxe básica às técnicas avançadas.

C++ Atualizado 2026-06-15

Ch09:建構子與解構子(Constructor & Destructor)

1. 理解各種建構子的種類與用法(預設、帶參數、委託、轉換、explicit) 2. 掌握成員初始化列表的語法、初始化順序與「為何優先於賦值」 3. 理解解構子的角色與解構順序 4. 掌握拷貝建構子與拷貝賦值運算子,分辨深拷貝 vs 淺拷貝 5. 深入理解 Rule of Three / Five / Zero 6. 理解 RAII 哲學,並知道它為何是 C++ 資源管理的基石 7. 學會使用 = default 與 = delete

Ler artigo →
C++ Atualizado 2026-06-15

Ch10 — 繼承與多型

物件導向三大支柱之二:繼承 Inheritance 與 多型 Polymorphism。 繼承讓我們在既有類別的基礎上擴充功能;多型讓同一介面對不同型別產生不同行為。 這兩個機制是 C++ 設計大型可擴充系統的核心,但也是初學者最容易誤用的地方。

Ler artigo →
C++ Atualizado 2026-06-15

Ch11 — 運算子多載

運算子多載 Operator Overloading 讓自定義型別也能使用 +、、<<、 等運算子, 使程式碼更直覺、更貼近數學或自然語言。 它本質上只是「換個語法的函式呼叫」——a + b 其實就是呼叫 operator+a, b。

Ler artigo →
C++ Atualizado 2026-06-15

Ch12:模板程式設計

說明 為什麼需要模板,並比較模板與「複製貼上多份程式碼」、巨集(macro)、void 三種泛型手段的優劣 撰寫 函式模板,理解 模板引數推導(template argument deduction) 的規則與限制 使用 明確模板引數、多型別參數、非型別模板參數(NTTP) 撰寫 類別模板,並能把成員函式定義在類別外 區分並實作 完整特化(full specialization) 與 部分特化(partial specializatio

Ler artigo →
C++ Atualizado 2026-06-15

Ch13:STL 容器

說明 STL 的三大支柱(容器、迭代器、演算法)如何協作,以及為何如此設計 理解每種容器的 底層結構、記憶體佈局與時間複雜度(BigO) 熟練使用 序列容器:vector、deque、list、forwardlist、array 熟練使用 關聯容器:map、multimap、set、multiset(紅黑樹、有序) 熟練使用 無序容器:unorderedmap/unorderedset(雜湊表、負載因子、自訂雜湊) 熟練使用 容器配接器

Ler artigo →
C++ Atualizado 2026-06-15

Ch14 — STL 演算法與迭代器(Algorithms & Iterators)

迭代器是連接容器與演算法的橋樑。STL 演算法透過迭代器操作資料,讓你無需了解容器的內部實作,就能對資料進行排序、搜尋、轉換等操作。學會「用演算法表達意圖」而非「手寫迴圈」,是寫出現代、正確、高效 C++ 的關鍵一步。

Ler artigo →
C++ Atualizado 2026-06-15

Ch15 — Lambda 與函式物件(Lambda & Function Objects)

函式物件(functor)與 Lambda 表達式是 C++ 中實現「可呼叫物件(callable)」的兩大方式。它們讓你能把「行為」當作參數傳遞、儲存、組合,是使用 STL 演算法、設計回呼(callback)與策略模式不可或缺的工具。掌握 Lambda,等於拿到了現代 C++ 的萬用鑰匙。

Ler artigo →
C++ Atualizado 2026-06-15

Ch16 — 記憶體管理與智慧指標(Memory Management & Smart Pointers)

手動記憶體管理是 C++ 最強大也最危險的能力。現代 C++ 透過智慧指標(smart pointers)把資源管理自動化,消除記憶體洩漏、懸空指標、重複刪除等一整類最難除錯的錯誤。本章的核心訊息只有一句話:在現代 C++ 中,你幾乎不該再手寫 new 與 delete。

Ler artigo →
C++ Atualizado 2026-06-15

Ch17 — 移動語意(Move Semantics)

移動語意是 C++11 最重要的革新之一。它讓程式能「搬走」資源而非「複製」,把處理大型物件(容器、字串、檔案緩衝)的成本從 On 降到 O1。理解移動語意,是理解現代 C++ 為什麼又快又安全的關鍵。

Ler artigo →
C++ Atualizado 2026-06-15

Ch18 — 例外處理(Exception Handling)

例外處理提供一種結構化的錯誤處理機制:把「正常邏輯」與「錯誤處理」分離,讓錯誤無法被默默忽略,並與 RAII 結合保證資源在任何路徑下都被釋放。本章不只教你語法,更教你何時該用、何時不該用例外。

Ler artigo →
C++ Atualizado 2026-06-15

Ch19:命名空間與多檔案專案

理解命名空間(namespace)的用途,知道它如何避免名稱衝突(name collision) 掌握命名空間的定義、巢狀命名空間(含 C++17 A::B::C 語法)與命名空間別名 區分 using 指令(directive)與 using 宣告(declaration),並理解為何不可在標頭檔使用 using namespace 認識匿名(unnamed)命名空間與內部連結(internal linkage) 初步認識 inlin

Ler artigo →
C++ Atualizado 2026-06-15

Ch20:C++17 特性精選

掌握結構化綁定(structured bindings):從 pair/tuple/struct/array 解構,理解拷貝 vs 參考的差異 學會 if/switch 帶初始化語句,把變數作用域限制在分支內 理解 if constexpr 的編譯期分支,並用於樣板程式設計 熟練 std::optional(hasvalue/value/valueor 與 badoptionalaccess 陷阱) 熟練 std::variant(ho

Ler artigo →
C++ Atualizado 2026-06-15

第二十一章:型別推導(Type Deduction)

1. 理解 auto 的三種推導情境(by value、auto&、auto&&)及其與 const、參考的交互 2. 看穿 auto 與大括號初始化(std::initializerlist)的陷阱 3. 掌握 decltype 的推導規則,並區分 decltypename 與 decltypeexpression 的關鍵差異 4. 學會使用 decltypeauto 進行回傳型別的完美轉發 5. 理解尾端回傳型別(trailing

Ler artigo →
C++ Atualizado 2026-06-15

第二十二章: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

Ler artigo →
C++ Atualizado 2026-06-15

第二十三章:多執行緒程式設計(Multithreading)

1. 解釋並行(concurrency)與平行(parallelism)的差異,並判斷何時值得引入多執行緒 2. 使用 std::thread 以函式、lambda、成員函式、函式物件建立執行緒,並正確地 join / detach 3. 理解 joinable 狀態,避免「可 joinable 的執行緒被銷毀」導致 std::terminate 4. 正確地以值、std::ref、std::move 傳遞參數給執行緒 5. 說明資料競

Ler artigo →
C++ Atualizado 2026-06-15

第二十四章:設計模式與最佳實踐

1. 解釋 SOLID 五大原則,並用 C++ 範例說明每一條如何改善設計 2. 區分創建型、結構型、行為型三大類設計模式 3. 實作執行緒安全的 Singleton(Meyers' Singleton),並說出它的批評與替代方案(依賴注入) 4. 實作 Observer 模式(push/pull、傳統繼承版與 std::function 現代版) 5. 實作 Strategy 模式(類別繼承版與 std::function 版),並判

Ler artigo →
C++ Atualizado 2026-04-03

完整 C++ 教材 — 由淺到深

以 C++17 標準為主的繁體中文完整教材,從零基礎到進階主題。 每個章節包含 Markdown 概念說明 + 可直接編譯執行的 .cpp 範例程式。

Ler artigo →
C++ 4th Atualizado 2026-02-03

🎓 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.

Ler artigo →
C++ 4th Atualizado 2026-02-03

🧩 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

Ler artigo →
C++ 4th Atualizado 2026-02-03

📚 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+

Ler artigo →
C++ 4th Atualizado 2026-02-03

✅ FINAL CURRICULUM ANALYSIS COMPLETE VERIFICATION

Based on the provided curriculum structure, I have conducted a comprehensive analysis to verify completeness:

Ler artigo →
C++ 4th Atualizado 2026-02-03

🚨 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.

Ler artigo →
C++ 4th Atualizado 2026-02-03

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

Ler artigo →
C++ 4th Atualizado 2026-02-03

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

Ler artigo →