Effective C++ 讀書筆記:多態基類必須宣告虛擬解構函式(條款 07)
條款 07:為多態基類聲明 virtual 析構函數 當透過基底類別指標刪除衍生類別物件時,若基底類別解構函式非虛擬,僅基底部分會被正確解構,衍生部分將遺漏,導
Effective C++ 讀書筆記:編譯器隱式生成的函數與拒絕不需要的函數(條款 05-06)
條款 05:了解 C++ 默默編寫並調用哪些函數 一個空類別 class Empty {}; 在 C++ 編譯器眼中並不空。若你不聲明,編譯器會隱式生成以下四個
Effective C++ 讀書筆記:確保物件使用前已初始化(條款 04)
條款 04:確定對象被使用前已先被初始化 C++ 對於「物件初始化」的規則顯得有些反覆無常。在某些情境下,內建型別與類別成員變量保證會被初始化,但在其他情境下卻
Effective C++ 讀書筆記(2):善用 const 的藝術
條款 03:盡可能使用 const const 讓編譯器與維護者清楚某值不可變,是防禦性程式設計的利器。 1. 指標與 const 的相對位置 char gr
Effective C++ 讀書筆記(1):視 C++ 為語言聯邦、棄用 #define
條款 01:視 C++ 為一個語言聯邦 現代 C++ 不再是單一語言,而是支援程序式(C 風格)、物件導向、函數式、泛型、模板元編程 等多種範式的聯邦。切換範式
Effective C++ 讀書筆記(0):基礎觀念與關鍵字
前言 身為即將入職的職場新人,雖在大學完成不少專題,但實戰經驗尚淺。趁著入職前的空檔,研讀《Effective C++》並整理筆記,鞏固 C++ 核心觀念。本文
C++ 中使用 MongoDB 執行 Count 與 Distinct 操作完整教學
前言 在 C++ 應用程式中整合 MongoDB 是常見需求。本文示範如何使用傳統的 MongoDB C++ Driver(mongo::DBClientCon
C++Builder XE2 實戰入門 (2):FireMonkey 平台前置條件與 GPU 需求分析
RAD Studio XE2 新特性全景 領域亮點 多平台Win32/64, macOS (Intel), iOS (ARM) — 單一代碼庫 64 位原生
C++Builder XE2 實戰入門 (1):FireMonkey 跨平台與剪貼板水印工具開發
為什麼選 C++Builder XE2? RAD Studio XE2 帶來里程碑式更新: FireMonkey (FMX):GPU 加速、跨平台 (Win3
MFC 自定義消息機制:從定義到定時器觸發實戰
自定義消息三步走 定義消息常量:#define WM_MYMESSAGE (WM_USER + 1) (或 WM_APP 避免衝突) 聲明處理函數:afx_m
C++ 異常處理深淵:規範失效、資源洩漏、析構函數陷阱與現代應對
異常規範:被編譯器拋棄的承諾 C++98 引入 throw(TypeList) 異常規範,承諾函數僅拋出列表內類型。現實卻是: MSVC 完全忽略:僅將 th
C 與 C++ 全域變量鏈接差異:從弱符號到 ODR 違規
觸發場景:枚舉定義缺失 typedef // test_enum.h #ifndef TEST_ENUM_H_ #define TEST_ENUM_H_ e
C++ 變量存儲全景圖:局部/靜態/全局的記憶體佈局與生命週期
五大記憶體區域速查 區域別名典型內容管理方式生命週期 棧區Stack局部變量、函數參數、返回地址、幀指針編譯器自動 (幀棧)函數調用期間 堆區Heapmal
C++ 核心解析:char* 與 char[] 的本質區別與記憶體佈局
現象:一樣的 abc,行為卻截然不同 char* c1 = abc; // 修改內容 → 崩潰 char c2[] = abc; // 修改內容 →
C++ Lambda 表達式深度解析:語法、性能與函數式編程對比
Lambda 基礎語法 ret { body } 捕獲列表:[=] 值捕獲、[&] 引用捕獲、[x, &y] 混合、[this] 捕獲 t
Windows 動態鏈接庫 (DLL) 開發全攻略:從導出到調用約定
DLL 核心價值 二進制復用:模組間共享代碼與資源,減小體積 熱插拔升級:替換 DLL 即可修復 Bug/新增功能,無需重編主程式 跨語言互操作:C/C++、
C++ COM 開發:從 IHTMLDOMNode 獲取 IHTMLElement 接口的正確 QueryInterface 用法
前言 在基於 MSHTML (Trident) 的 Web 瀏覽器控件、HTML 解析、自動化測試開發中,IHTMLDOMNode 是 DOM 節點的基礎接口,