高品質 C++/C 程式設計指南 第 6 章 (二):返回值設計鐵律與 getchar 經典反面教材
6.2 返回值規則 規則 6-2-1:不可省略返回型別 C 允許隱式 int,C++ **嚴禁**。無返回值必寫 void。 規則 6-2-2:函數名與返回
高品質 C++/C 程式設計指南 第 6 章 (三):函數內部實現規範與斷言藝術
6.2 返回值傳遞方式抉擇 (續) String 相加運算子:必須值傳回 String operator+(const String& s1, const S
高品質 C++/C 程式設計指南 第 7 章 (一):記憶體三大分配方式與五大常見錯誤對策
比爾·蓋茨的失言 「640K ought to be enough for everybody」 — Bill Gates, 1981 記憶體管理是雷區,**唯
高品質 C++/C 程式設計指南 第 7 章 (二):陣列與指標的內容修改、複製與比較
7.3.1 修改內容:陣列可改,字串字面值不可改 char a[] = hello; a[0] = X; // ✅ 陣列在棧/靜態區,內容可改 char*
高品質 C++/C 程式設計指南 第 7 章 (三):指標參數傳遞記憶體、返回動態記憶體與棧記憶體陷阱
7.3.3 sizeof:陣列 vs 指標 char a[] = hello world; // 12 bytes (含 \0) char* p = a; s
高品質 C++/C 程式設計指南 第 7 章 (四):野指針成因、new/delete vs malloc/free 深度對決
7.7 野指針:比 nullptr 更隱蔽的殺手 野指針 ≠ nullptr**。指向「垃圾記憶體」,if(p) 無法偵測,極難診斷。 三大成因 未初始化:
高品質 C++/C 程式設計指南 第 7 章 (五):記憶體耗盡處理三策略與虛擬記憶體迷思
7.9 記憶體分配失敗:malloc/new 返回 nullptr 三大處理策略: 策略 1:函數級返回 void Func() { A* a = n
高品質 C++/C 程式設計指南 第 7 章 (六):malloc/free 使用細節與 sizeof 陷阱
malloc 原型與雙關鍵要素 void* malloc(size_t size); 核心:**型別轉換** + **sizeof 計算**。 型別轉換 ma
高品質 C++/C 程式設計指南 第 7 章 (七):new/delete 使用要點與指針心法
7.11 new/delete 核心優勢 // malloc 版:手動 sizeof、強制轉型、無型別檢查 int* p1 = (int*)malloc(siz
高品質 C++/C 程式設計指南 第 8 章 (一):函數重載機制、實現原理與 extern "C" 混合編程
8.1 函數重載:從自然語言到 C++ 機制 起源 自然語言一詞多義 (如「吃飯」涵蓋吃牛肉/魚/雞),靠上下文消歧。 C++ 引入重載:**語義相近函數共用
高品質 C++/C 程式設計指南 第 8 章 (二):重載函數二義性與成員函數重載/覆寫/隱藏辨析
8.1.3 隱式型別轉換引發重載二義性 void output(int x); void output(float x); output(1); // ✅
高品質 C++/C 程式設計指南 第 8 章 (三):成員函數隱藏規則與破解之道
8.2.2 隱藏規則:繼承體系的隱形殺手 「隱藏」= 派生類函數**屏蔽**同名基類函數,規則極易誤判為重載或覆寫: 同名、參數不同 → **隱藏** (無論
高品質 C++/C 程式設計指南 第 8 章 (四):預設參數與運算子多載規範
8.3 預設參數:簡潔與二義性的雙面刃 核心規則 只能出現在宣告,不可在定義體重複。 void Foo(int x = 0, int y = 0); // ✅
高品質 C++/C 程式設計指南 第 9 章 (一):建構/解構/賦值——看似簡單實則危險的三大基石
每個類別的三大基本函數 解構函數:唯一 賦值運算子:唯一 建構函數:可多個 (含一個拷貝建構函數) 若程式設計師不寫,編譯器**自動合成四個預設版本**:
高品質 C++/C 程式設計指南 第 9 章 (二):初始化列表的效能與規範
9.2 初始化列表:建構函數的「黃金前置區」 位於參數列後、函數體 `{` 前,**早於函數體任何代碼執行**。 強制使用場景 繼承體系:派生類**必須**
高品質 C++/C 程式設計指南 第 9 章 (三):建構/解構順序與 String 類實戰
9.3 建構與解構順序:鐵律不可違 建構:從繼承樹根部開始 → 每層先基類建構函數 → 再成員物件建構函數 (按**類別宣告順序**,非初始化列表順序)。 解
高品質 C++/C 程式設計指南 第 9 章 (四):賦值運算子的四步實現與偷懶封鎖法
String 賦值運算子:四步走戰略 String& String::operator=(const String& other) { // (1) 自
高品質 C++/C 程式設計指南 第 10 章 (上):繼承與組合的核心法則
面向對象設計的重點:類別而非物件 物件是類別的實例。類別 = 設計圖,物件 = 房子。**設計孤立類別易,設計正確繼承體系難**。本章聚焦「繼承」與「組合」概念