C 深入理解虛函式

2022-06-26 11:21:11 字數 488 閱讀 1874

c++深入理解虛函式

(1)在基類用virtual宣告成員函式為虛函式。這樣就可以在派生類中重新定義此函式,為它賦予新的功能,並能方便被呼叫。

在類外定義虛函式時,不必在定義virtual

(2)在派生類中重新定義此函式,要求函式名,函式型別,函式引數個數和型別全部與基類的虛函式相同,並根據派

生類的需要重新定義函式體。

c++規定,當乙個成員函式被宣告為虛函式後,其派生類的同名函式都自動成為虛函式。因此在派生類重新宣告該

虛函式時,可以加virtual,也可以不加,但習慣上一般在每層宣告該函式時都加上virtual,使程式更加清晰。

如果再派生類中沒有對基類的虛函式重新定義,則派生類簡單的繼承起基類的虛函式。 

(3)定義乙個指向基類物件的指標變數,並使它指向同一類族中需要呼叫該函式的物件。

(4)通過該指標變數呼叫此虛函式,此時呼叫的就是指標變數指向的物件的同名函式。

例子

c 深入理解虛函式

為什麼使用虛函式?什麼是虛函式?虛函式是為了解決什麼問題?物件導向的三大特徵 封裝繼承 多型 1.普通虛函式 2.虛析構函式 3.純虛函式 4.抽象類 5.介面類 6.隱藏 vs 覆蓋 7.隱藏與覆蓋之間的關係 8.早繫結和晚繫結 9.虛函式表 靜態多型 vs 動態多型 靜態多型也叫做早繫結 cla...

c 深入理解虛函式

物件導向的三大特徵 相同物件收到不同訊息或不同物件收到相同訊息時產生的不同的動作。ifndef rect h define rect h include include using namespace std class rect 矩形類 endif shape h 如上面的 他們函式名相同,引數個...

深入理解虛函式

在c 中,在基類中被宣告為virtual並在在乙個或多個派生類中被重新定義的成員函式就是虛函式。基本格式如下 virtual return type func name arg 我們可以通過指向派生類的基類指標或引用來呼叫派生類中同名覆蓋的成員函式。如下 class a 究竟虛函式底層是如何實現多型...