多型性與虛函式

2022-03-29 15:42:46 字數 559 閱讀 4311

多型性

多型性是物件導向程式設計的乙個重要特徵。如果一種語言只支援類而不支援多型,是不能被稱為物件導向語言的。只能說是基於物件的,如ada,vb

就屬於此類。

在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...