C 多型 虛函式 純虛函式和抽象函式

2021-07-17 03:28:15 字數 1192 閱讀 5991

多型、虛函式、純虛函式和抽象函式

多型按字面的意思就是多種形態。當類之間存在層次結構,並且類之間是通過繼承關聯時,就會用到多型。

c++ 多型意味著呼叫成員函式時,會根據呼叫函式的物件的型別來執行不同的函式。(其主要是函式的多種形態)乙個函式實現多種功能,形式是乙個乙個覆蓋。

例項如下:

#includeusing namespace std;

class a

};class b:public a

};int main()

執行完,可以看出父類中的虛函式,在子類中的虛函式都是同名同型別,卻可以有多重用法,形式就像這樣的乙個覆蓋另乙個執行。

虛函式 是在基類中使用關鍵字 virtual 宣告的函式。在派生類中重新定義基類中定義的虛函式時,會告訴編譯器不要靜態鏈結到該函式。

我們想要的是在程式中任意點可以根據所呼叫的物件型別來選擇呼叫的函式,這種操作被稱為動態鏈結,或後期繫結。

#include using namespace std;

class people

//加virtual關鍵字宣告為虛函式

virtual void display()

};class student : public people

//加virtual關鍵字宣告為虛函式

virtual void display()

};int main()

執行結構如下:

people: xiao ming

student: li lei

請按任意鍵繼續. . .

純虛函式

您可能想要在基類中定義虛函式,以便在派生類中重新定義該函式更好地適用於物件,但是您在基類中又不能對虛函式給出有意義的實現,這個時候就會用到純虛函式。

class shape 

// pure virtual function

virtual int area() = 0;

};

構成多型的條件

多型存在的三個條件:

必須存在繼承關係;

繼承關係中必須有同名的虛函式,並且它們是覆蓋關係(過載不行)。

存在基類的指標,通過該指標呼叫虛函式。

C 多型, 虛函式, 純虛函式

多型 不同物件接收相同的訊息產生不同的動作。多型包括 編譯時多型和 執行時多型 執行時多型是 通過繼承和虛函式來體現的。編譯時多型 運算子過載上。封裝可以隱藏實現細節,使得 模組化 繼承可以擴充套件已存在的 模組 類 它們的目的都是為了 重用。多型也有 重用的功能,還有解決專案中緊耦合的問題,提高程...

多型,虛函式,純虛函式

多型 借助虛函式,基類指標既可以使用基類 父類 的成員函式,也可以使用派生類 子類 的成員函式,它有多種形態,或多種表現方式,這就是多型 簡單說就是同一條語句可以執行不同的操作,看起來有不同表現方式,這就是多型。多型存在的三個條件 注意 派生類 子類 中的虛函式必須覆蓋 不是過載 基類 父類 中的虛...

多型,虛函式,純虛函式,抽象類

c 中,實現多型有以下方法 虛函式,抽象類,過載,覆蓋 多型性在object pascal和c 中都是通過虛函式 virtual function 實現的。這麼一大堆名詞,實際上就圍繞一件事展開,就是多型,其他三個名詞都是為實現c 的多型機制而提出的一些規則,下面分兩部分介紹,第一部分介紹 多型 第...