C++ 計算子字串在字串中出現次數:KMP 思想的簡易實作
問題描述 給定目標字串 target 與子字串 pattern,計算 pattern 在 target 中出現的次數(可重疊)。 演算法邏輯:兩指針掃描與回溯
C++ Builder 專案實戰筆記:ComboBox、ListBox、ADO、Oracle 與常用技巧總結
ComboBox 使用精要 清除項目:ComboBox->Items->Clear(); 常用事件:OnDropDown(下拉前)、OnChang
C++ 參數傳遞深度剖析:值傳遞、指標傳遞與引用傳遞的本質區別
概念層面的根本差異 特性指標引用 本質儲存位址的獨立變數現有變數的別名,無獨立實體 初始化可延遲、可重新指向定義時必須初始化,終身綁定 空值可為 nullpt
C++ Windows 多線程同步實戰:基於 Mutex 封裝 RAII 鎖類
背景與目標 在 Windows 平台多線程編程中,互斥體 是內核級同步原語,支持**跨進程同步**(關鍵區僅限進程內)。本文實現一套現代 C++ 風格的封裝:I
C/C++ 全域變數跨檔案共享的正確姿勢:extern、定義與宣告的關鍵細節
核心規則:定義一次、宣告多次 全域變數在單一編譯單元(.c/.cpp)定義,其他檔案以 extern 宣告引用。標頭檔不可放定義,否則多檔包含導致重複定義連結錯
C/C++ Windows 目錄遞迴掃描:封裝 FindFirstFile/FindNextFile 實用工具函式
痛點:原生 API 繁瑣且易出錯 Windows FindFirstFile/FindNextFile 需處理路徑拼接、./.. 過濾、遞迴終止、句柄釋放等細節
讓 C++ 使用極速記憶體分配器 FastMM:封裝 DLL 並重載全域 new/delete
動機:標準分配器的效能瓶頸 C++ 預設的 malloc/free(及 new/delete)在高併發、頻繁小塊分配場景下效能較差。Delphi 的 FastM
C++ 建構函式與拷貝建構函式深度解析:從預設行為到深拷貝實戰
四大預設成員函式:編譯器的「隱形禮物」 若類別未顯式宣告,編譯器將隱式產生以下四個函式: class A { // 編譯器隱式產生: A();
C++ 物件陣列建立全解析:一維指標 vs 二維指標的深度差異
兩種建立動態物件陣列的方式 在 C++ 中建立動態物件陣列,主要有「一維指標」與「二維指標」兩種模式,它們在記憶體佈局、建構/解構順序、釋放方式上有本質不同。
C++ 動態記憶體管理:為什麼必須用 new/delete 而非 malloc/free
核心差異:建構與解構的呼叫時機 C++ 引入 new/delete 的根本原因在於:malloc/free 僅負責原始記憶體的配置與釋放,不會呼叫建構函式與解構
深入理解 C/C++ (四):物件生命週期、Rule of Three、虛函數表與工程師成長之路
前言:從面試觀察 C/C++ 程式設計師的深度差距 本文翻譯自 Olve Maudal 與 Jon Jagger 合著的《Deep C (and C++)》。筆
【Deep C/C++】深度理解 C/C++ (三):物件模型、虛函式表、Rule of Three 與現代 C++ 實踐
前言 本系列第三部分深入 C++ 物件模型:POD 型別與非 POD 差異、虛函式表機制、sizeof 變化規律、經典 Rule of Three 與現代 Ru
【Deep C/C++】深度理解 C/C++ (一):編譯鏈接、靜態變數與 main 返回值
前言 本系列譯自 Olve Maudal & Jon Jagger 經典投影片《Deep C (and C++)》。第一部分從最簡單的 hello wo
【Deep C/C++】深度理解 C/C++ (二):未定義行為、序列點與記憶體對齊
前言 本系列譯自 Olve Maudal & Jon Jagger 的《Deep C (and C++)》投影片。第二部分聚焦於 **未定義行為(Und
C++ 組合類別初始化:冒號語法、常數成員與參考成員完整指南
前言 組合(Composition)是「有一個」關係的核心實作。當類別包含其他類別物件、const 成員或參考成員時,建構子初始化清單(冒號語法)不僅是效率優化
C/C++ 指標配置與賦值陷阱:malloc/new、字串常數與 strcpy 實戰解析
前言 指標是 C/C++ 最強大也最危險的特性。許多初學者在配置記憶體、字串賦值、釋放資源上反覆踩坑。本文透過一個左旋字串的實際除錯案例,徹底釐清三種配置方式、
Effective C++ 筆記(三):確保物件使用前已完整初始化
前言 C++ 允許宣告未初始化的物件(內建型別、POD 類別),導致「使用未初始化值」這類難以偵測的 Bug。本文詳細說明同一編譯單元內的成員初始化順序、跨編譯