今天,我讀到《effective c++》的第34條款,裡面竟然提到純虛函式也是可以定義的,大吃一驚,趕快開啟vs2005,自己編寫了一段**,編譯執行,發現竟然真的可以!
俺的**:
class a
;void a::purevirtualfunc()
class b : public a
};int main(void)
執行結果:
i』am purevirtualfunci belong to b!請按任意鍵繼續. . .
原來抽象類是可以對純虛函式進行定義的,在其子類中也是可以使用抽象父類的預設實現!這一切對我來說顯得這麼突然!好像腿腳一軟,站不穩了!是的,以前天天啃個不停個的教材竟然存在如此偏差!等等!好像教材裡也沒錯!裡面並沒有說「不能」進行函式實現,而是根本就沒有提到要去實現。所以老師和天真的我們都預設為不能實現咯!
在此我深深感悟到,目光短淺和學無止境的真正含義了!
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...