多型性與虛函式

2021-08-20 07:47:02 字數 571 閱讀 2079

多型性是物件導向程式設計的乙個重要特徵。多型性:向不同的物件傳送同一訊息,不同的物件在接受時會產生不同的行為。

例如函式的過載和運算子過載都是多型現象。

在c++中,多型性的表現形式之一是:具有不同功能的函式可以用同一函式名,這樣就可以實現乙個用乙個函式名呼叫不同內容的函式。

從系統實現的角度來看,多型性分為兩類:靜態多型性和動態多型性。

靜態多型性

通過函式過載完成,由函式過載和運算子過載(運算子過載實質上就是函式過載)形成的多型性屬於靜態多型性。

要求程式在編譯時就知道呼叫函式的全部資訊,因此,在程式編譯時系統就可以決定要呼叫哪乙個函式。靜態多型性又稱編譯時的多型性。

動態多型性:

不在編譯時確定呼叫的是哪個函式,而在程式執行過程中才動態地確定操作所針對的物件,他又稱執行時的多型性。動態多型性是通過虛函式實現的。

虛函式與多型性

實驗內容 定義基類base,其資料成員為高h,定義成員函式disp 為虛函式,由基類派生出長方體類和圓柱類,並在兩個派生類中定義成員函式disp 為虛函式。在主函式中,用基類base定義指標p,用指標p動態呼叫虛函式disp 顯示面積。虛函式 它是基類中的成員函式,並在派生類中被過載。派生類中的虛函...

多型性與虛函式

1.函式過載 overloading 與靜態聯編 static binding 函式過載 overloading 指的是,允許多個不同函式使用同乙個函式名,但要求這些同名函式具有不同的參數列。參數列中的引數個數不同 參數列中對應的引數型別不同 參數列中不同型別引數的次序不同。例 intabs int...

虛函式與多型性

include stdafx.h include using namespace std class animal void sleep void breathe class fish public animal void fn animal pan int tmain int argc,tchar...