c 的虛函式

2021-10-04 03:43:08 字數 578 閱讀 3610

虛函式是定義在基類中的函式,用virtual宣告成員函式為虛函式。子類可以選擇性地對其進行覆蓋。

虛函式是實現動態多型的方法。

在基類中用virtual宣告成員函式為虛函式

在派生類中重新定義此函式。除了需要重新定義的函式體外,要求函式名,函式型別,引數個數和引數型別等全部和基類一樣。

定義乙個指向基類的物件的指標變數,通過該指標變數呼叫此虛函式。

純虛函式是一種特殊的虛函式,在基類中不能對虛函式給出有意義的實現,而把它宣告為純虛函式,它的實現留給該基類的派生類去做。

virtual int a() = 0;

基類中的虛函式是實現的

純虛函式是乙個函式宣告而已,它要留到子類裡去實現。

虛函式在子類裡可以不用重寫

純虛函式必須在子類實現才可以例項化子類

只有虛函式的類不能被稱為抽象類

帶純虛函式的類叫抽象類,這種類不能直接生成物件,而只有被繼承,並重寫其虛函式後,才能使用。

C 虛函式 純虛函式

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

C 虛函式 純虛函式

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

C 虛函式 純虛函式

include qdebug class animal void animal animal 即要實現基類animal的animal函式 假如在dog子類中沒有實現animal 函式,則會呼叫基類的animal 函式。即列印 what is the animal 假如在dog子類中實現了animal...