c 之多型和虛函式(二)

2021-08-20 23:30:20 字數 1365 閱讀 8347

一、虛函式的過載特性

1、在派生類中過載基類的虛函式要求函式名、返回型別、引數個數、引數型別和順序完全相同

2、如果僅僅返回型別不同,c++認為是錯誤過載

3、如果函式原型不同,僅函式名相同,丟失虛特性

4、舉例

class derived : public  base

;

void g ( )

;

二、虛析構函式

1、建構函式不能是虛函式。建立乙個派生類物件時,必須從類層次的根開始,沿著繼承路徑逐個呼叫基類的建構函式

2、析構函式可以是虛的。虛析構函式用於指引delete 運算子正確析構動態物件

3、舉例

#include

using namespace std ;

class a

};

class b : public a

} ;

int main()

三、幾點注意事項

1.派生類應該從它的基類公有派生。?

2.必須首先在基類中定義虛函式。

3.派生類對基類中宣告虛函式重新定義時,關鍵字virtual可以不寫。

4.一般通過基類指標訪問虛函式時才能體現多型性。

5.乙個虛函式無論被繼承多少次,保持其虛函式特性。

6.虛函式必須是其所在類的成員函式,而不能是友元函式,也不能是靜態函式。

7.建構函式、內聯成員函式、靜態成員函式不能是虛函式。

(虛函式不能以內聯的方式進行處理)

8.析構函式可以是虛函式,通常宣告為虛函式。

C 之多型和虛函式

一.什麼是多型 多型與封裝,繼承一起構成了物件導向的3大特性。多型指向不同物件傳送同一訊息,不同的物件會產生不同的行為。也就是說每個物件用自己的方式去響應共同的訊息。c 有倆中形式的多型。如上課鈴打了,不同班級的同學走向不同的教室。編譯時的多型性,即靜態聯編 程式在編譯之前就可以確定的多型性,通過過...

C 之多型性與虛函式

物件導向程式設計中的多型性是指向不同的物件傳送同乙個訊息,不同物件對應同一訊息產生不同行為。在程式中訊息就是呼叫函式,不同的行為就是指不同的實現方法,即執行不同的函式體。也可以這樣說就是實現了 乙個介面,多種方法 從實現的角度來講,多型可以分為兩類 編譯時的多型性和執行時的多型性。前者是通過靜態聯編...

C 之多型性與虛函式

物件導向程式設計中的多型性是指向不同的物件傳送同乙個訊息,不同物件對應同一訊息產生不同行為。在程式中訊息就是呼叫函式,不同的行為就是指不同的實現方法,即執行不同的函式體。也可以這樣說就是實現了 乙個介面,多種方法 從實現的角度來講,多型可以分為兩類 編譯時的多型性和執行時的多型性。前者是通過靜態聯編...