C 多型使用

2021-09-19 13:07:12 字數 589 閱讀 6249

一、多型

派生類物件的位址可以賦值給基類指標。對於通過基類指標呼叫基類和派生類中都有的同名、同參數列的虛函式

的語句,編譯時並不確定要執行的是基類還是派生類的虛函式;

當程式執行到該語句時,如果基類指標指向的是乙個基類物件,則基類的虛函式被呼叫,如果基類指標指向的是

乙個派生類物件,則派生類的虛函式被呼叫。這種機制就叫作「多型」。

所謂「虛函式」,就是在宣告時前面加了 virtual 關鍵字的成員函式。virtual 關鍵字只在類定義中的成員

函式宣告處使用,不能在類外部寫成員函式體時使用。靜態成員函式不能是虛函式。

包含虛函式的類稱為「多型類」。

多型可以簡單地理解為同一條函式呼叫語句能呼叫不同的函式;或者說,對不同物件傳送同一訊息,使得不同對

象有各自不同的行為。

#include using namespace std;

class a

void vprint()

};class b : public a

void vprint()

};class d

使用C實現多型

什麼是多型?簡單地說就是主函式訪問繼承類derive的成員函式時,如果derive類存在此函式,就直接呼叫它 而如果derive類沒有,但是base類有此函式,則間接呼叫父類的那個函式。簡單的說,就是一句話 允許將子類型別的指標賦值給父類型別的指標 c也可以實現多型。不過這種多型和c 中的多型有所不...

C 多型 繼承多型

什麼是多型?個人理解為 在程式語言繼承關係中,子類能替代父類,表現出不同的行為。換句話說 在繼承關係中,乙個類被例項化被其子類替代,子類中有父類的虛方法重寫,或者有父類同名方法 new 呼叫相同方法時候,將表現出子類或者父類中不同行為 老闆,上 static void main string arg...

c 如何使用抽象和多型

虛建構函式與prototype模式建構函式是不能虛的,而這裡指的是具有這樣功能的函式。如在乙個類中,我們使用乙個virtual成員函式clone來呼叫複製建構函式new x this clone函式實際上是一種專門型別的factory method模式,它製造了乙個適當的產品,同時允許呼叫 對上下文...