Effective C++ 條款 45:成員函式模板——支援智慧型指標的隱式轉換
問題:智慧型指標缺乏內建指標的隱式轉換 內建指標天然支援衍生類指標→基類指標、T*→const T* 等隱式轉換: class Top {}; class M
Effective C++ 條款 42:Traits 技術——編譯期類型資訊的提取與應用
背景:STL advance 的效能難題 advance(iter, d) 將迭代器移動 d 步。概念上是 iter += d,但只有 Random Acces
C/C++ 面試經典題深度剖析:從 strcpy 到記憶體管理的內功修煉
前言:看似簡單,實考驗基本功 企業面試常考手寫 strcpy,能寫出 10 分滿分版本者寥寥無幾。本文收集論壇常見題目,從技術內涵深度剖析,助你建立扎實內功。
C 巨集:智者的利刃,愚者的惡夢——正視巨集的價值與風險
前言:被誤解的「萬惡之源」 許多中階 C++ 程式設計師常掛嘴邊:「C 巨集是萬惡之首,應被廢棄」。但 Bjarne Stroustrup 只說 C++ 在特定
Effective C++ 條款 49:深入理解 new-handler 行為與類別專屬處理器
標準 new-handler 機制 當 operator new 無法滿足記憶體請求時,會拋出 std::bad_alloc 異常 (舊編譯器可能回傳 null
C++ 接口與實現分離:Pimpl 慣用法深度解析
痛點:頭文件暴露實現細節導致編譯依賴地獄 開發庫時,我們希望只公開介面 (公有成員函式),隱藏實現細節 (私有成員、輔助類別)。但若公開類別 ClxExp 直接
新手也能搞定 C++ 記憶體洩漏:Visual Studio 偵測實戰指南
背景:記憶體洩漏的隱性殺手 C++ 將記憶體配置與釋放的控制權交給程式設計師,靈活之餘也埋下「記憶體洩漏」的隱憂。新手常忘記 delete 對應的 new,小程
C++ 記憶體陷阱:馴服野指標與淺拷貝的危機
什麼是野指標? 想像一位母親有兩個孩子(兩個指標),分別在廚房和臥室(不同的程式碼區塊,生命週期不同)。母親讓廚房的孩子拿一塊蛋糕(指標指向的物件)給臥室的孩子
淺談 C/C++ 內存洩漏類型、成因與檢測工具鏈
內存洩漏定義與分類 狹義:堆內存洩漏(malloc/new 分配未 free/delete)。廣義:系統資源洩漏(HANDLE、GDI Object、SOCKE
單元測試工具 C++ Test 簡介:白盒、黑盒、回歸測試全流程
工具概覽 Parasoft C++ Test:針對 C/C++ 源碼的自動化單元測試工具,支持三種模式: 白盒測試:分析源碼,對所有成員函數(含 privat
如何編寫異常安全的 C++ 代碼:三級保證與 RAII 實戰
何時拋出異常:不變式視角 前條件:調用前必須滿足,違反 = 邏輯錯誤(斷言/終止)。 後條件:調用後應滿足,違反 = 異常狀況(拋出異常)。 不變式:執行全程
C++ 內存分配五大區域詳解:堆、棧、自由存儲區、全局/靜態區、常量區
五大區域劃分 區域分配方式生命周期管理典型內容 棧編譯器自動作用域結束自動銷毀局部變量、函數參數、返回地址 堆new程序員 delete,進程結束 OS 回收
C++ 中 new/delete 導致的內存分配問題與自定義分配策略
嵌入式環境的痛點 頻繁 new/delete 造成堆碎片、分配失敗、性能抖動。 C++ 易用性誘導濫用動態分配,嵌入式系統必須管控。 全局重載 opera
More Effective C++:不使用多態數組——切片問題的鐵律
問題根源:指針算術與對象大小不匹配 class BST { ... };class BalancedBST : public BST { ... };void
More Effective C++:C++ 四大類型轉換操作符詳解
C 風格轉換的缺陷 過於粗暴:const 去除、層次轉換、重新解釋位模式混不吝啃。 難以識別:語法 (Type)expr 與普通括號表達式混淆,工具難掃描。
More Effective C++:指針與引用的區別與選擇指南
核心差異 特性指針引用 可為空是 (nullptr)否,必須綁定對象 初始化可延後聲明時必須初始化 重新綁定可隨時指向新對象終生綁定初始對象,不可改變 語法*
C++ 信徒的摩西十四戒:核心編程準則精華
第 0 條:不拘泥細節 縮進、行長、命名風格(除宏全大寫)不強制統一,目標是易讀。 反對匈牙利記法(C++ 類型系統已足夠)。 反對單入口單出口(異常 + 確
C++ sizeof 使用規則及陷阱全面解析
sizeof 不是函數,是編譯期運算符 可無括號用於表達式:sizeof 3;類型須加括號:sizeof(int)。 編譯期求值,不產生機器碼:sizeof(