1.1 C++ 三大程式設計範式
C++ 的核心優勢在於融合了三種程式設計範式:
- 過程導向:繼承自 C 語言,以函數為基本單位,自頂向下分解問題。
- 物件導向 (OOP):以類別與物件封裝資料與行為,支援繼承、多型、封裝,自底向上建構系統。
- 泛型程式設計:透過模板實現演算法與資料型別分離,標準模板庫 (STL) 是典型代表。
1.2 C 語言簡史與特性
- 1970 年代,貝爾實驗室 Dennis Ritchie 為開發 UNIX 而設計 C 語言。
- 結構化程式設計:代碼塊、分支、迴圈(
for、while)。
- 自頂向下的程式設計流程。
1.3 C++ 語言演進與關鍵特性
1.3.1 起源
同樣誕生於貝爾實驗室,由 Bjarne Stroustrup 於 1980 年代開發,最初命名為「C with Classes」。
1.3.2 物件導向程式設計 (OOP)
- 強調資料為中心,類別描述一類事物的特徵,物件是具體實例。
- 支援封裝、繼承、多型,促進程式碼重用與擴充。
1.3.3 泛型程式設計
- 演算法獨立於資料型別,如
std::sort、std::find 可操作任意符合要求的容器。
- 模板機制實現編譯期多型,零執行期開銷。
1.3.4 可移植性
原始碼層面的可移植:使用對應平台的編譯器重新編譯即可運行,無需修改原始碼。ANSI/ISO 標準化保障了跨平台一致性:
- C++98(1998)、C++03(2003)、C++11(2011)、C++14/17/20/23 持續演進。
1.3.5 編譯與連結流程
| 平台 | 常用編譯指令 |
| Unix/Linux | g++ main.cpp -o main (GNU C++) |
| Windows (CLI) | cl main.cpp (MSVC) 或 g++ (MinGW/Cygwin) |
| Windows (IDE) | Visual Studio 2019/2022、CLion、VS Code + 擴充 |
流程:預處理 → 編譯 → 組譯 → 連結,產出可執行檔。
1.4 學習建議
- 先掌握 C 基礎語法(指標、陣列、結構體、記憶體模型)。
- 理解類別設計與物件生命週期(建構/解構、RAII)。
- 熟悉 STL 容器、演算法、迭代器、智慧型指標。
- 實作專案鞏固:小型計算機、學生管理系統、簡易遊戲引擎。
- 參考經典教材:《C++ Primer》(第 5 版)、《Effective C++》、《C++ 標準程式庫》。
提示:本章為導論,重點建立整體認知框架。後續章節將深入語法細節、物件模型、模板元程式設計與現代 C++ 最佳實務。