C 多型,虛函式

2021-08-09 19:54:21 字數 570 閱讀 2254

多型是指使用相同的函式名來訪問函式不同的實現方法,即「一種介面,多種方法」,用相同的形式訪問一組通用的運算,每個運算可能對應的行為不同。

c++支援編譯時多型和執行時多型,運算子過載和函式過載就是編譯時多型,而派生類和虛函式實現執行時多型。

執行時多型的基礎是基類指標,基類指標可以指向任何派生類物件。

2.虛函式與過載函式的區別:

1)過載函式之間必須在引數的型別或者數量上加以區分,而重新定義的虛函式在引數的型別和數量上必須與原型相同;

2)在定義虛函式的類中,虛函式必須宣告為類的成員而不能是友元,可以被宣告為其他類的友元;析構函式可以是虛函式,建構函式不行。

(3)純虛函式及其作用:

純虛函式是指在基類中宣告但是沒有定義的虛函式:virtual type func(param list) = 0;

把虛函式宣告為純虛函式可以強制在派生類中重新定義虛函式,否則編譯器會報錯。

(4)抽象類及其特徵

如果乙個類至少有乙個純虛函式,則稱為抽象類。抽象類只能用來作為其他類的基類,不能定義抽象類的物件,因為在抽象類中有乙個或者多個函式沒有定義。但是能夠使用抽象類來宣告指標或者引用。

C 多型,虛函式

在c 中可以用基類指標指向其派生類,如果乙個派生類繼承多個父類,那麼如何通過基類指標訪問同名的成員呢?如果基類a,基類b中都有函式fun 派生類在同時繼承a b後在記憶體中根據繼承的順序分配記憶體,例如在繼承列表中出現的是b,a,那麼b中的成員在a的之前,當我們用b的指標去訪問時候,編譯器便將指標指...

C 虛函式多型

由虛函式實現的動態多型性就是 同一類族中不同類的物件,對同一函式呼叫作出不同的響應。虛函式的使用方法是 1 在基類用virtual宣告成員函式為虛函式。這樣就可以在派生類中重新定義此函式,為它賦予新的功能,並能方便地被呼叫。在類外定義虛函式時,不必再加virtual。2 在派生類中重新定義此函式,要...

C 多型,虛函式

是對於不同物件接收相同訊息時產生不同的動作,體現在編譯和執行兩個方面。編譯時多型體現在函式和運算子的過載上 執行時多型通過繼承和虛函式體現 在基類中冠以關鍵字virtual的成員函式,使得允許在派生類中對基類的虛函式重新定義 對虛函式的呼叫有動態聯編和靜態聯編。建構函式不能是虛擬的,但析構函式可以是...