C++ 物件序列化實戰:手把手實現持久化對象(含版本相容與效能優化)
為什麼需要手工序列化? C++ 無內建反射與持久化支援。直接 write(this, sizeof(*this)) 會導致: 指標/智慧指標/STL 容器只存
C++ 指標參數進階:為什麼需要 T*&(指標引用)?
從值傳遞到引用傳遞的演進 1. 傳遞指標(值傳遞) void Func(MyClass* p) { p = new MyClass; } // 只改區域副本
VC++ DLL 導出 C++ 類的標準做法:__declspec(dllexport) 與 .def 檔對比
兩種導出方式 方法一:__declspec(dllexport) 直接標記類別 // MyClass.h #ifdef MYDLL_EXPORTS #defi
C++ 讀取 Windows 保留檔名(aux、com1~9、prn、con、nul)的正確姿勢
問題背景 Windows 禁止在 GUI/一般 API 中建立/存取名為 aux、com1~com9、prn、con、nul 的檔案/資料夾(源自 DOS 裝置
VC++ 開發效率倍增器:Visual Studio 常用快捷鍵與技巧大全
編輯器核心快捷鍵 操作快捷鍵說明 括號配對跳轉Ctrl+]游標在括號上,跳轉至配對括號;不匹配則嗶鳴 跳轉定義F12 / Ctrl+滑鼠左鍵宏、變數、函數定
VC++ 註冊表讀寫完整指南:查詢與修改用戶/公司資訊
註冊表基礎知識 Windows 註冊表為多層樹狀結構,六大根鍵:HKEY_CLASSES_ROOT、HKEY_CURRENT_USER、HKEY_LOCAL_M
VC++ 實現現代風格資料夾瀏覽對話框(支援新建資料夾與右鍵選單)
背景 VC++ 5.0(Windows 2000)之前,資料夾瀏覽對話框(SHBrowseForFolder)預設無「新建資料夾」按鈕,需自行繪製 Hook 實
別像「小貝」一樣學 C++:避開功利主義的學習陷阱
現象剖析:為什麼小貝失敗了? 劇集《蝸居》中,小貝手捧《大規模 C++ 程式設計》卻只翻了一半就蓋在桌上吃灰。這不是 C++ 難、不是書不好,而是學習動機與態度
C++ 從零開始(十二):面向對象程式設計思想的本質探討
什麼是程式設計思想? 程式設計思想即「如何編寫方法的描述」。同一演算法,不同人寫出的程式邏輯截然不同,根源在於對「世界」建模方式的差異。好的思想產出結構清晰、可
C++ 從零開始(十一·下):虛函數表機制與多型實戰
虛函數的「間接」藝術 延續中篇對「虛」的概念闡述:虛函數透過虛函數表(vtable)間接取得函數位址,並在派生類建構函式中重寫表內容,實現「同一介面、多種行為」
C++ 從零開始(十一·中):深入解析多重繼承與虛繼承機制
前言 承接上篇內容,本文將深入探討 C++ 中較為進階的類相關知識——多重繼承與虛繼承的底層實現機制。理解這些機制不僅有助於掌握 C++ 物件模型,更能在複雜的
C++ 從零開始(十一)上:類的進階特性——存取權限、建構與解構
存取權限:封裝語義的語法實現 成員函數讓自定義型別從「資源」昇華為「具功能的資源」。以收音機為例,調頻、調音量、開關機皆屬其功能,對應成員函數;頻率、音量、電量
C++ 從零開始(十):類的本質與成員函數機制
類與結構的關係 上一篇說明結構本質上是定義記憶體佈局。類型定義符前也可寫 class,所謂「類」即 class 定義的自定義型別。兩者根本無異(僅有一處細微差別
C++ 從零開始(九):深入理解結構與類型定義
前言:類型與記憶體的協議 在上一篇中我們提到,程式設計的第一步是將資源映射為數字,而「類型」實際上是人為制定的解讀記憶體中二進制數的協議。一個數字對應一塊記憶體
C++ 從零開始(八):從演算法到代碼的實戰轉化——排序與交換
前言:程式設計 = 資料建模 + 演算法映射 + 流程控制 將人腦演算法轉化為機器可執行代碼,需完成三步:資源 → 數字映射、操作 → 運算式映射、流程 → 語
C++ 從零開始(七):函數——代碼復用與抽象的基石
前言:函數是「有名字的代碼塊」 函數將重複邏輯封裝、參數化、賦予語義名稱,是構建大規模軟體的基本單元。本文系統梳理函數宣告/定義、參數傳遞機制、返回值處理、重載
C++ 從零開始(五):指標——記憶體操作的核心抽象
前言:指標是 C/C++ 的靈魂 指標將「資料」與「資料位置」分離,實現了 動態記憶體管理、多態分派、資料結構構建、函數回調** 等核心能力。本文從陣列退化、字
C++ 從零開始(四):賦值運算子與運算式求值秩序完全指南
前言:賦值不只是「存數字」 C++ 賦值運算子 (=) 是表達式,有返回值、有副作用、有求值秩序。本文系統梳理賦值語句、複合賦值、遞增遞減、返回值語義、求值順序