C++ 簡易鏈結串列 CSimpleList 完整實作與測試
設計目標 實作一個極簡單向鏈結串列,僅支援頭插、走訪、移除、清空,節點結構由使用者定義,列表本身不分配節點記憶體 (非擁有者)。 標頭檔 _AFXTLS_.H
C++ 模板類別實作與應用:以 MFC 風格 CTypedSimpleList 為例
背景:型別安全的簡易鏈結串列 MFC 提供 CSimpleList (儲存 void*) 作為基礎,透過模板類別 CTypedSimpleList<TYP
C++ 模板方法模式完整解析:從雲端檔案下載框架到骨架演算法
動機:固定流程、可變步驟 雲端儲存客戶端需支援 HTTP、SOAP、FTP 等多種協定下載檔案。整體流程固定:Begin → Download → End,但每
C++ 信號量同步機制實戰:Semaphore 內核對象控制多線程訪問共享資源
前言:信號量是線程同步的經典原語 Windows 核心對象 Semaphore 維護一個計數器,Wait 遞減(為 0 時阻塞),Release 遞增(喚醒等待
C++ 線程同步基礎:全域旗標控制工作線程完整範例
場景:主線程優雅停止工作線程 最簡單的同步機制是共享 volatile bool 或 std::atomic 旗標。主線程設定旗標,工作線程輪詢並在旗標為假時退
C/C++ 記憶體對齊深度解析:規則、實測與優化實務
現象:相同成員、不同順序、不同大小 struct A { char a; char b; int c; }; // sizeof = 8 struct B
C++ 中介者模式完整解析:從聯合國機制到解耦通訊實作
動機:物件間的「蜘蛛網」依賴 當多個同事物件 (Colleague) 彼此直接呼叫,會形成 N×N 的緊耦合關係:新增/修改一個物件可能波及所有其他物件。中介者
C++ 模板特化與偏特化深度解析:從語法到 STL 實務
前言:為什麼需要特化? 泛型演算法對大多數型別通用,但特定型別 (如 float 比較需容差、指標需解參考、std::string 需特殊處理) 需要客製化行為
C++ 動態配置 const 物件:語法、生命週期與實務場景
語法基礎 C++ 允許在自由存儲區 (heap) 建立 const 物件,語法如下: const int* p = new const int(128);
Java EE Filter 實作自動登入、安全登入、IP 黑名單與登出完整教學
Filter 核心價值 Servlet Filter 位於請求進入 Servlet 之前、回應離開之前,適合處理橫切關注點:編碼統一、登入驗證、自動登入、IP
C++ 單例模式完整實作:從基礎版到線程安全的現代寫法
單例模式核心需求 全程式只有一個實例 自行建立並管理該實例 提供全域存取點 版本一:經典懶漢式 (非線程安全) // Singleton.h class
C++ 狀態模式完整解析:從 if-else 地獄到優雅的狀態機
動機:為什麼需要狀態模式? 當一個物件的行為隨內部狀態改變,且狀態轉換邏輯複雜時,傳統做法是在每個方法裡寫大量 if-else 或 switch-case 判斷
C++ 成員函式配合 STL find_if 使用:std::bind 與 mem_fn 完整指南
問題背景 std::find_if 接受一元謂詞,但成員函式帶有隱含 this 指標,直接傳遞會導致編譯錯誤: error C3867: Class::Memb
C++ RTTI 機制深度解析:type_info、typeid 與 dynamic_cast 內部原理
什麼是 RTTI? RTTI (Run-Time Type Information) 是 C++ 提供的執行期型別識別機制,主要包含兩大核心: typeid
C++ 實作 Python 風格 raw_input:模板泛型輸入函式
動機 Python 的 raw_input(prompt) 同時完成「提示輸出」與「讀取回傳」,用法極為簡潔:val = raw_input(Enter num
C++ 命令模式深度解析:從 12306 排隊系統到程式碼實作
引言:為什麼需要命令模式? 以 12306 購票系統為例:早期使用者瘋狂點擊「查詢/提交」,每次點擊都直接觸發後端業務邏輯,導致伺服器過載。引入排隊機制後,使用
Java Servlet 實作從伺服器下載圖片/檔案完整範例
需求背景 Web 應用常需提供檔案下載功能:使用者點選連結,伺服器讀取遠端或本地檔案,以二進位串流回應瀏覽器並觸發「另存新檔」對話框。本文示範完整的 Servl