多型:
多型可以簡單地概括為「乙個介面,多種方法」,程式在執行時才決定呼叫的函式,它是物件導向程式設計領域的核心概念。
接下來,我寫乙個簡單地函式來說明多型:
#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...