C++ 進階特性:參數預設值與運算子多載詳解
8.3 參數的預設值 在函式呼叫時,若某些參數的值固定不變,每次都傳遞相同數值會顯得冗贅。C++ 提供了參數預設值機制,讓編譯器在編譯期自動填入預設值,大幅簡化
高品質 C++/C 程式設計指南:隱藏規則詳解、陷阱案例與 using 宣告解除隱藏
隱藏規則兩大情況 衍生類函數與基類函數同名、參數不同:無論 virtual,基類同名函數全部被隱藏(非多載)。 衍生類函數與基類函數同名、參數相同,但基類非
高品質 C++/C 程式設計指南:隱式轉換導致多載歧義與成員函數多載/覆蓋/隱藏辨析
隱式轉換產生多載歧義 void output(int x) { cout << int << x << endl; } void output(float
高品質 C++/C 程式設計指南:函數多載、內聯、extern "C" 與名稱修飾
多載起源與實現 自然語言一詞多義(重載),靠上下文消歧。 C++ 編譯器依參數型別/個數/順序產生內部修飾名(Name Mangling),如 _eat_be
高品質 C++/C 程式設計指南:new/delete 使用要點、陣列刪除陷阱與除錯心法
new/delete 簡化記憶體管理 // 配置單一物件 int* p1 = new int; Obj* obj = new Obj(10); // 呼叫建構
高品質 C++/C 程式設計指南:malloc/free 使用要點與 sizeof 陷阱
malloc 原型與正確用法 void* malloc(size_t size); // 申請 length 個 int int* p = (int*)mal
高品質 C++/C 程式設計指南:組合優於繼承——「是一部分」關係的正確建模
核心原則:規則 10-2-1 若邏輯上 A 是 B 的「一部分」(a part of),不允許 B 從 A 派生,而應以組合方式構建 B。 正確範例:He
C++/CLI 介面與泛型完整教學:從 ICollection 到 List/Queue 多型與泛型集合
介面定義與實作 using namespace System; public interface class ICollection { void
C++/CLI 繼承與列舉實戰:銀行交易類別體系與 CLI enum class
CLI enum class 特性 public enum class TransactionType : unsigned char { Depos
Managed C++ 善用 Path 類別處理暫存檔:三行程式碼搞定建立、優化、刪除
三大痛點一次解決 定位暫存目錄:Path::GetTempPath() 建立唯一暫存檔:Path::GetTempFileName()(自動建立 0 位元組檔
C++/CLI 靜態建構子實作:跨執行期保持唯一 ID 的交易追蹤範例
情境:交易唯一 ID 需跨程式執行持久化 每筆交易需唯一遞增 ID,程式結束時保存下一可用 ID,下次啟動恢復。標準 C++ 無內建機制,CLI 基礎庫也無,需
C++/CLI 核心觀念:組件、中繼資料、CLI 型別與 ref class 實作
組件與中繼資料 組件:單次編譯輸出單元。含進入點為 .exe,否則 .dll。取代傳統 obj+link 模式。 中繼資料:描述組件內型別、方法、屬性、泛型參
C++/CLI 委派與事件深度解析:從單播到多播、傳遞與排序實例
委派基礎 委派是型別安全的函數包裝物件。宣告語法類似函數簽章,前加 delegate 關鍵字: int 的靜態/實例方法 建立與呼叫 ref struct
C++/CLI 輸入輸出完整指南:Stream、Reader/Writer 與標準串流
IO 體系概覽 .NET IO 核心為 System.IO.Stream(位元組串流)與 TextReader/TextWriter(字元串流)。常用衍生類別:
WF (Workflow Foundation) 權限控制實作:以 WebWorkflowRole 為例
架構概覽 WF 提供兩種角色提供者: ActiveDirectoryRole:整合 AD 使用者/群組。 WebWorkflowRole:整合 ASP.NET
為 STL 容器撰寫自訂記憶體配置器:基於 SGI 二級配置器的記憶體池實作
設計目標 降低小區塊頻繁 new/delete 的碎片與效能開銷。 符合 C++ Allocator 概念(value_type, pointer, rebi
C 與 C++ 標準輸入差異:scanf 留存換行符導致的連續讀取問題
現象重現 char a, b; printf(Please input the first character: ); scanf(%c, &a); print
sscanf 進階用法大全:格式化字串解析技巧
基本回顧 char str[512] = {0}; sscanf(123456, %s, str); // 讀取至空白字元 printf(str=%s\n,