c 多型的定義和實現

2021-10-21 13:45:49 字數 674 閱讀 8517

編譯時多型:在程式編譯過程**現,發生在模板和函式過載中(泛型程式設計)。

執行時多型:在程式執行過程**現,發生在繼承體系中,是指通過基類的指標或引用訪問派生類中的虛函式。

多型就是不同繼承類的物件,對同一訊息做出的不同響應,基類的指標指向或繫結到派生類的物件,使得基類指標呈現不同的表現形式。

構成多型的條件

執行時將會根據物件的實際型別來呼叫相應的函式。如果物件型別是派生類,就呼叫派生類的函式;如果物件型別是基類,就呼叫基類的函式。

在類中用 virtual 關鍵字宣告虛函式;

存在虛函式的類都有乙個虛函式表,當建立該類乙個物件時,會生成乙個指向虛函式表的虛表指標(虛函式表對應類,虛表指標對應物件)。

當基類指標指向派生類的物件時,基類指標呼叫虛函式時,基類指標指向派生類的虛表指標,由於該虛表指標指向派生類的虛函式表,在表中遍歷查詢相應的虛函式。

繼承:程式向上總結

將子類共同的行為和屬性集中寫到父類中,通過繼承,所有子類都能自動獲得這些屬性和行為,大大減少了重複**。

繼承成為多型實現的基礎。

多型:程式向下擴充套件

父類某些行為,子類進行繼承重寫,從而實現:同種行為,不同的實現。

多型定義 多型實現 多型分類。

1.多型定義 同一操作作用於不同的物件,可以有不同的解釋,產生不同的執行結果,這就是多型性。簡單的說 就是用基類的引用指向子類的物件。2.如何實現多型 c 中的多型只能通過指向基類型別的指標和引用來呼叫物件的虛函式來實現。實現多型有三種方式 虛方法,抽象方法,介面。虛方法 子類重寫父類中的方法,對父...

C 多型的實現和原理

c 的多型性用一句話概括就是 在基類的函式前加上virtual關鍵字,在派生類中重寫該函式,執行時將會根據物件的實際型別來呼叫相應的函式。如果物件型別是派生類,就呼叫派生類的函式 如果物件型別是基類,就呼叫基類的函式 1 用virtual關鍵字申明的函式叫做虛函式,虛函式肯定是類的成員函式。2 存在...

c 多型的基本定義

多型是c 物件導向三大特性之一 多型分為靜態多型和動態多型 靜態多型 函式過載 和 運算子過載屬於靜態多型,復用函式名。動態多型 類的繼承和虛函式實現執行時的多型。二者的區別 由於早晚繫結,就會產生一些區別 1.下面複習一下,有無虛函式的差別。其實就是子類物件的是否覆蓋的問題 虛函式宣告只能寫在類定...