C 基礎 純虛函式

2021-07-15 11:52:34 字數 611 閱讀 8080

純虛函式:

純虛函式是指被標明為不具體實現的虛擬成員函式。

它用於這樣的情況:定義乙個基類時,會遇到無法定義基類中虛函式的具體實現,其實現依賴於不同的派生類。

定義純虛函式的一般格式為:

virtual 返回型別 函式名(參數列)=0;

含有純虛函式的基類是不能用來定義物件的。

純虛函式沒有實現部分,不能產生物件,所以含有純虛函式的類是抽象類。

抽象類不能定義物件,但可以定義指標和引用;

//抽象類,提供乙個公共父類,利於提高公共介面

class a

;class p : public a

int main()

定義純虛函式必須注意:

1.定義純虛函式時,不需要定義虛函式的實現部分。即使是定義了函式體也不執行,

2.「=0」表明程式設計師將不定義該函式,函式宣告是為派生類保留乙個位置。「=0」本質上是將指向函式體的指標定null。

3.在派生類中必須有重新定義所有的純虛函式的函式體,這樣的派生類才能用來定義物件。

C 基礎 虛函式 純虛函式 普通函式

為什麼要使用虛函式 說明 為什麼要使用純虛函式 什麼情況下使用純虛函式 滿足以上兩點,可考慮宣告為純虛函式。例1 class a 輸出結果 function in class a function in class a function in class b function in class a ...

C 虛函式 純虛函式

1 基本概念 虛函式是在基類中使用關鍵字virtual宣告的函式。在派生類中重新定義基類中定義的虛函式時,會告訴編譯器不要靜態鏈結到該函式。我們想要的是在程式中任意點可以根據所呼叫的物件型別來選擇呼叫的函式,這種操作被稱為動態鏈結,或後期繫結。您可能想要在基類中定義虛函式,以便在派生類中重新定義該函...

C 虛函式 純虛函式

1.析構函式是否應為虛函式問題?2.成員函式的虛函式問題?3.析構函式是否可以為純虛函式問題?說明 僅在使用父類指標指向子類物件時有區別 當析構函式非虛函式時,使用父類指標指向子類物件,在析構時將不會呼叫子類析構函式 當析構函式是虛函式時,使用分類指標指向子類物件,在析構時會呼叫子類析構函式,且呼叫...