C 多型 虛函式

2022-06-11 14:12:10 字數 580 閱讀 3341

一.多型:

1.多型是什麼:具有不同功能的函式可以用同乙個函式名

2.靜態多型:程式編譯時決定,通過函式過載實現.

3.動態多型:程式執行時決定,通過虛函式實現.

二.虛函式:

1.引入目的:可以通過基類指標或引用來訪問基類和派生類中的同名函式(簡化多態函式的呼叫).

方法:先用基類指標指向該物件即可.

2.過載與虛函式:

過載處理的是同一層次上的同名函式問題(橫向過載);

而虛函式處理的是不同派生層次上的同名函式問題(可理解為縱向過載)(多型)

3.虛析構函式:

建議使用虛析構函式,以保證在撤銷動態儲存空間時能得到正確的處理.

三.純虛函式:

1.作用:在基類中為其派生類保留乙個函式的名字,以便派生類跟據需要對它進行定義.如果基類沒有保留函式名字,則無法實現多型性.

四.例項

struct

resultbit

;union result

;class

restorer

;typedef restorer* restorerptr;

C 多型,虛函式

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

C 虛函式多型

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

C 多型,虛函式

多型是指使用相同的函式名來訪問函式不同的實現方法,即 一種介面,多種方法 用相同的形式訪問一組通用的運算,每個運算可能對應的行為不同。c 支援編譯時多型和執行時多型,運算子過載和函式過載就是編譯時多型,而派生類和虛函式實現執行時多型。執行時多型的基礎是基類指標,基類指標可以指向任何派生類物件。2.虛...