MFC 全稱 Microsoft Foundation Classes,以 C++ 類庫封裝 Windows API。從 C 轉型 C++ 的關鍵在於理解「類」、「封裝」、「繼承」、「多態」。
class Aves { // 鳥類
public: // 公有介面
Aves(); // 建構函數:初始化
~Aves(); // 解構函數:清理資源
void Fly(); // 成員函數
void Sing();
private: // 私有實現細節
char m_strWing[10];
char m_strBowels[10];
};
~ClassName(),離開作用域或 delete 時自動調用,釋放 new 記憶體、關閉句柄。this->m_strWing 與 m_strWing 等價。public (對外)、protected (衍生類)、private (僅本類)。struct 預設 public,class 預設 private。{
Aves bird; // 區域物件,建構
bird.Fly(); // 使用
} // 離開作用域,自動解構
Aves* pBird = new Aves(); // 堆疊物件,手動管理
pBird->Fly();
delete pBird; // 必須手動刪除,觸發解構
名域:一對大括號 `{}` 形成一個作用域。區域物件在作用域結束時自動銷毀,這是 RAII (Resource Acquisition Is Initialization) 的基石。
| 核心類 | 用途 |
|---|---|
CObject | 所有 MFC 類基底,支援序列化、運行時類型資訊 (RTTI)、診斷傾印 |
CCmdTarget | 命令目標基類,實現訊息映射、命令路由 |
CWinThread | 執行緒封裝,應用程式物件 CWinApp 衍生自此 |
CWnd | 視窗封裝基類,CFrameWnd、CView、CDialog、控件皆衍生 |
CDocument/CView | 文檔/視圖架構核心,資料與顯示分離 |
PascalCase、成員變數 m_camelCase、常數 UPPER_SNAKE、巨集 UPPER_SNAKE。#ifndef MYHEADER_H / #define MYHEADER_H / #endif,或 #pragma once (VC 支援)。const。enum 或 static const 命名常數。BOOL 返回碼 + GetLastError;現代 C++ 推薦例外 + RAII。