C++ RTTI 完整指南 (2):實際應用與型別敏感相等比較
18.2.3 RTTI 實際應用:型別敏感相等比較 需求:比較兩個基類參考,只有動態型別相同且內容相等才回傳 true。 value_; // 型別相同再比較
C++ RTTI 完整指南 (1):dynamic_cast、typeid 與型別識別
18.2 運行時類型識別 (RTTI) 針對多態類別 (含虛函數),提供運行時型別查詢與安全轉換。 18.2.1 dynamic_cast 安全轉換 deri
C++ 類別靜態成員變數定義與初始化陷阱
核心規則 宣告在類別內,定義在類別外 (非 const 整數型別除外)。 私有靜態成員也需在外部定義,存取權不影響定義需求。 const 整數/列舉型別可在類
C++ 記憶體分配優化 (2):類別專屬 new/delete 與自由列表實現
18.1.6 類別專屬 operator new/delete 類別定義靜態成員 operator new/delete,該類別 (及繼承類) 的 new/de
C++ 記憶體分配優化 (1):allocator、operator new 與定位 new
18.1 記憶體分配與物件建構分離 C++ new 表達式 = 分配原始記憶體 + 建構物件。delete = 解構物件 + 釋放記憶體。進階控制需分離這兩步驟
C++ 多重繼承與虛繼承深度解析 (2):二義性、虛基類與初始化規則
17.3.4 類別作用域與二義性 多重繼承可能從多個基類繼承同名成員,直接使用會產生二義性。 class ZooAnimal { public: void
C++ 多重繼承與虛繼承深度解析 (1):基礎與建構順序
17.3.1 多重繼承定義 class ZooAnimal {}; class Endangered {}; class Bear : public ZooA
C++ 命名空間完整指南 (5):重載解析與命名空間、模板特化
17.2.6 重載解析與命名空間 候選函數集合擴展 呼叫函數時,編譯器將每個參數類別所在的命名空間中同名函數加入候選集合,即使該函數在呼叫點不可見。 na
C++ 命名空間完整指南 (4):using 宣告與指示進階、引數相關查找
17.2.4 命名空間成員使用進階 using 宣告作用域 全域/區域/命名空間作用域皆可使用。 類別作用域僅限引入基類成員 (using Base::fu
C++ 命名空間完整指南 (3):未命名命名空間替代 static
未命名命名空間語法 namespace { // 無名稱 class Class3 {}; // 僅本檔可見 int file_local_c
C++ 命名空間完整指南 (2):成員定義、外部定義與介面分離
在命名空間外部定義成員 類別前向宣告於命名空間內,定義於外部: // Namespace2.h namespace Andersoft { name
C++ 命名空間完整指南 (1):定義、巢狀、別名與 using
17.2 命名空間核心機制 命名空間將全域名稱劃分為獨立作用域,解決大型專案與第三方庫的名稱衝突。 17.2.1 定義與基本規則 namespace And
C++ 異常處理深度解析 (5):異常規格與虛函數、函數指標
17.1.10 異常規格繼承規則 派生類覆寫虛函數時,其異常規格必須至少與基類同等嚴格 (允許拋出的型別集合為基類的子集)。 class Base { pu
C++ 異常處理深度解析 (4):auto_ptr 歷史遺物與現代替代
17.1.9 auto_ptr 回顧 (C++98/03,C++11 棄用,C++17 移除) auto_ptr 是早期嘗試實現獨佔所有權智慧指標,但因複製即轉
C++ 異常處理深度解析 (3):自訂異常類別與 RAII 資源管理
17.1.7 異常類別層次設計 標準庫 std::exception 提供虛擬 what() 回傳錯誤訊息。自訂異常應繼承標準異常體系,便於統一捕獲。 範例:
C++ 異常處理深度解析 (2):重新拋出、捕獲所有與函數試塊
17.1.4 重新拋出 在 catch 區塊中使用空 throw; 將原始異常物件沿調用鏈向上傳遞,保持原始型別與資訊完整。 try { throw
C++ 異常處理深度解析 (1):拋出、捕獲與堆疊展開
17.1 異常處理核心機制 異常處理將「錯誤偵測」與「錯誤處理」分離,讓函數專注於本身邏輯,錯誤由調用鏈上層統一處理。 17.1.1 拋出類類型異常 #in