業界對 OOP 定義不一,但公認核心三大支柱:封裝、繼承、多態。部分觀點加入異常處理、泛型編程。C++ 為多範式語言,同時支援 OOP 與泛型編程。
提供強大抽象機制(類、模板、命名空間、異常等),降低軟件復雜度。C++ 不僅是 OOP 語言,還支援泛型編程(模板),兩者互補:OOP 綁定狀態與行為,泛型編程處理未知類型,降低耦合。
| 分類 | 說明 | 代表語言 |
|---|---|---|
| 強類型 | 編譯期嚴格類型檢查,隱式轉換受限 | C++、Java、C#、Python |
| 弱類型 | 隱式轉換自由,如 JS、Perl | JavaScript、PHP |
| 靜態類型 | 變量類型編譯期確定 | C++、Java、C# |
| 動態類型 | 運行期確定類型 | Python、Ruby、JS |
C++ 為強類型、靜態類型語言。強類型帶來安全性,靜態類型帶來性能。
將數據(屬性)與操作(方法)綁定在類中,通過 private/public/protected 控制可見性。目標:高內聚、低耦合,防止依賴蔓延。C++ 類比 C 結構體更強大、清晰。
子類自動共享父類數據與方法,建立 is-a 關係。提高代碼重用性與擴展性。注意:繼承破壞封裝(子類依賴父類實現細節),優先考慮組合。
同一操作作用於不同對象產生不同行為。通過 virtual 函數實現運行時多態。編譯時多態:重載、模板。多態是繼承後擴展性的關鍵體現。
提取事物共性本質,忽略無關細節,建立抽象類/接口。C++ 中通過純虛函數定義抽象類(接口)。