面向對象程序設計(Object-Oriented Programming, 簡稱OOP)是20世紀80年代發展起來的一種程序設計方法。它通過模擬現實世界中的事物和關系,利用抽象、分類、歸納等方法來構造軟件系統。
在20世紀80年代末,隨著所要開發程序規模的增大,結構化程序設計的一些缺點越來越突出,主要是:
- 數據和算法的一致性差。在結構化程序設計中,數據與處理數據的算法是相互分離的。如果根據需要而修改某一項數據時,處理此數據的所有算法都要作相應的修改。
- 程序的可重用性差。
而在OOP中,事物的屬性對應于數據,事物的操作對應事物的算法,因此將數據和處理數據的算法捆綁成一個整體就定義了一種事物的類型。
OOP中的三個主要特征:
- 封裝性。C++中使用“類”來表示。
- 繼承性。指一種事物保留了另一種事物的全部特征,并且具有自身的獨有特征。C++中使用繼承來支持重用。
- 多態性。多態性是指當多種事物繼承自一種事物時,同一種操作在它們之間表現出不同的行為。C++中使用函數重載、模板、虛函數等概念來支持多態性。