c 多型總結

2021-07-24 12:35:26 字數 968 閱讀 6587

多型:

多型可以簡單地概括為「乙個介面,多種方法」,程式在執行時才決定呼叫的函式,它是物件導向程式設計領域的核心概念。

接下來,我寫乙個簡單地函式來說明多型:

#includeusing namespace std;

int add(int left, int right)

float add(float left, float right)

int main()

}

其中,person類僅僅提供乙個介面。

下面來看一些**:

class b

{public:

virtual void funtest1()

{ cout<<"b::funtest1()"b->funtest2();

b->funtest3();

b->funtest4();

b->funtest4(1);

//cout《主函式中呼叫的,到底是基類裡面的還是派生類裡面的呢?

執行結果:

d::funtest1()

b::funtest2()
d::funtest3()
d::funtest4()
b::funtest4(int)
從結果可以推斷:

基類裡面帶virtual的函式,在繼承類中會被重寫(派生類裡面的virtual可以省略);

若基類裡面不帶virtual,派生類裡面沒有帶,則沒有被重寫,僅僅被繼承了寫來;

另外,帶引數和不帶引數也不一樣。

C 多型總結

多型繫結分兩種情況,一種是靜態繫結即編譯時多型,一種是動態繫結即執行時多型是利用過載實現的。對於非虛函式的成員來說,系統在編譯時,按照函式的引數的區別來繫結要實現的操作,在編譯時就確定了呼叫哪個函式。簡單地說,虛函式是動態繫結的基礎 動態繫結是實現執行時多型的基礎。要觸發動態繫結,需滿足兩個條件 1...

C 多型總結

多型概念 同乙個事物在不同環境下具有不同的狀態 虛函式概念 在函式返回值前加上 virtual 關鍵字 多型分類 靜態多型 早繫結 在編譯器編輯時確認要呼叫的函式 1 函式過載 2 泛型程式設計 動態多型 晚繫結 在程式執行時確認將要呼叫的函式 1 基類中存在虛函式 2 繼承當中對基類進行重寫並且 ...

c 多型總結

1 c 中通過virtual關鍵字對多型進行支援,使用virtual宣告的函式被重寫後即可展現多型特性。注意和虛繼承的區別。雖然用的是同乙個關鍵字,但意義完全不同。2 多型的意義 多型可以使用未來,80年 了乙個框架,可以呼叫90年 的 多型是設計模式的基礎,多型是框架的基礎。3 多型成立的條件 3...