C 多型的純文字介紹

2021-08-28 19:14:01 字數 519 閱讀 2373

多型通俗理解就是多種形態, 它是一種介面重用, 可以理解為同乙個介面, 實現不同的方法

c++中, 多型分為靜態多型和動態多型

靜態多型的實現就是函式過載

動態多型的實現是, 父類的指標或引用, 呼叫父類或子類的同乙個介面, 即同名虛函式, 如果子類實現了虛函式重寫, 就可以實現多型, 實質上就是呼叫子類或父類的同乙個介面, 實現不同的方法, 指向誰調誰

具體的實現是通過虛函式來實現的, c++中, 如果乙個類中有虛函式, 那麼類的物件模型中就會維護乙個虛表指標,指向乙個虛表, 虛表就是虛函式表, 是乙個函式指標陣列, 儲存的是類中所有虛函式的函式指標, 當子類繼承父類後, 子類也繼承了父類的虛表, 如果子類對父類的同名虛函式重寫, 子類會把重寫了父類的虛函式的函式指標儲存到自己的虛表中,  覆蓋掉虛表中對應父類虛函式的函式指標

然後, 當父類的指標或引用呼叫虛函式時, 會在虛表中取出函式指標, 指向子類時, 取出的是子類的虛函式的函式指標, 指向父類時, 呼叫的是父類的虛函式的函式指標.

c++的動態多型的底層原理就是這樣的

C 多型, 虛函式, 純虛函式

多型 不同物件接收相同的訊息產生不同的動作。多型包括 編譯時多型和 執行時多型 執行時多型是 通過繼承和虛函式來體現的。編譯時多型 運算子過載上。封裝可以隱藏實現細節,使得 模組化 繼承可以擴充套件已存在的 模組 類 它們的目的都是為了 重用。多型也有 重用的功能,還有解決專案中緊耦合的問題,提高程...

c 程式設計 多型和純虛函式

dog類和cat類繼承animal類 根據使用者輸入的數值,建立相應個數的 dog 物件和 cat物件,然後呼叫 speak 之後再銷毀。10分 題目內容 編寫三個類 dog類和cat類繼承animal類 dog類 cat類 animal類各有乙個預設建構函式,分別輸出字串 dog cat 和 an...

C 中多型怎樣由虛函式實現。和純虛函式介紹

首先,在c 中,多型有兩種,函式過載和虛函式。python中的多型貌似就是只有函式過載.粗俗地說 繼承意味著,子類可以使用父類的方法,而多型,則是父類可以使用子類的方法。網上有一句話很好地解釋了多型 多型性是允許你將父物件設定成為和乙個或更多的他的子物件相等的技術,賦值之後,父物件就可以根據當前賦值...