| 維度 | C (面向過程) | C++ (多範式) |
|---|---|---|
| 核心抽象單元 | 函數 | 類/對象 + 模板 |
| 數據與行為 | 分離 (結構體 + 獨立函數) | 封裝 (類內部綁定數據與方法) |
| 代碼復用 | 複製修改 / 函數庫 | 繼承 / 組合 / 模板 / 概念 |
| 類型安全 | 弱 (void*, 宏, 隱式轉換) | 強 (模板類型推導, static_assert, 智能指針) |
| 資源管理 | 手動 malloc/free | RAII (構造/析構), 智能指針, 容器 |
| 泛型編程 | 宏 / void* (不安全) | 模板 (編譯期類型安全, 零開銷抽象) |
| 標準庫 | 極小 (stdio, stdlib, string, math) | 龐大 (STL 容器/算法/迭代器, iostream, filesystem, threads, regex...) |
nullptr...extern "C" 實現 C/C++ 混合編程,C++ 直接調用 C 庫 (OpenSSL, FFmpeg, SQLite, Linux 內核 API...)。C++ 不是從 C 「分出」的獨立分支,而是在 C 高效、接近硬件的基因上,植入了面向對象、泛型、元編程等現代軟件工程範式,形成零開銷抽象的系統級語言。學透 C,是精通 C++ 的必要前提;掌握 C++,則能用更高級的抽象驾馭複雜系統。