天天看點

8.1多态性

第8章 虛函數與多态性

多态性是指一個名字,多種語義;或界面相同,多種實作。

重載函數是多态性的一種簡單形式。

虛函數允許函數調用與函數體的聯系在運作時才進行,稱為動态聯編。

8.1 靜态聯編

聯編是指一個程式子產品、代碼之間互相關聯的過程。

靜态聯編,是程式的比對、連接配接在編譯階段實作,也稱為早期比對。重載函數使用靜态聯編。

動态聯編是指程式聯編推遲到運作時進行,是以又稱為晚期聯編。

switch語句和if語句是動态聯編的例子。

普通成員函數重載可表達為兩種形式:

1.在一個類說明中重載

例如:Show(int,char);

Show(char *,float);

2.基類的成員函數在派生類重載。有3種編譯區分方法:

(1)根據參數的特征加以區分

例如:Show(int,char);與Show(char *,float);不是同一函數,編譯能夠區分

(2)使用“::”加以區分

例如:A::Show();有别于B::Show();

(3)根據類對象加以區分

例如:Aobj.Show();調用A::Show();

Bobj.Show();調用B::Show();

重載函數的區分

//非const函數一般适用于變量對象

//const函數重載一般适用于常量對象