一、多型的基本概念
多型(polymorphism)就是多種狀態,在c++中只「乙個介面,多個實現方法」。
二、多型的兩種方式
c++支援兩種多型性:編譯時多型性,執行時多型性。
a.編譯時多型,通過函式過載實現,靜態繫結
b.執行時多型,通過虛函式實現,動態繫結
三、虛函式(virtual)
a.非虛函式,呼叫的函式是由用於呼叫函式的控制代碼(指標或引用)型別決定,而不是由控制代碼所指向的物件的型別決定。
b.虛函式,呼叫哪個類的虛函式就是由控制代碼所指向的物件的型別所決定,而非控制代碼的型別。
四、虛函式實現機制
a.資料結構,virtual函式表,含有虛函式的類,編譯器編譯時都會為這個類建立乙個virtual函式表,每次呼叫該類的virtual函式時,
執行程式都會根據virtual函式表選擇正確的函式實現。
b.實現機制,**指標:virtual函式表中指向函式具體實現的指標;含virtual函式的類的物件指向該類的virtual函式表的指標;
用於呼叫virtual函式的物件控制代碼。
五、虛函式與析構函式
基類的析構函式一般都是虛函式,這樣做是為了當用乙個基類的指標刪除乙個派生類的物件時,派生類的析構函式會被呼叫,防止在析構時只析構基類而不析構派生類的狀況發生。
六、**例子說明
#include
using
namespace
std;
class
a
virtual
void
fun()
};
class
b :
public
a
void
fun()
};
intmain(
void
)
第乙個p->foo()和p->fuu()輸出結果就是1、2;
第二個輸出結果就是1、4。
翻譯 C 多型機制
www.cplusplus.com使用google搜尋c polymorphic顯示的第乙個網頁便是該網頁.c 多型機制 在更深入的了解本章節前,你需要對於指標與類的繼承有初步的理解.如果你不是很確定是否理解以下的表示式,你需要複習下列的章節 statement explained in int a...
C 多型實現的機制
1 多型的概念 從使用方式上簡單的說 就是將父型別的指標指向其子類的例項,然後通過父類指標呼叫子類的成員函式。這種技術可以讓父類的指標有 多種形態 這是一種泛型技術。所謂泛型技術,說白了就是試圖使用不變的 來實現可變的演算法。比如 模板技術,rtti技術,虛函式技術,要麼是試圖做到在編譯時決議,要麼...
C 多型實現機制剖析
物件導向的三大概念 封裝,繼承,多型。封裝突破了c語言函式的概念 繼承實現了 的復用,那麼多型實現了什麼價值呢,簡單理解就是前人寫的 框架 可以呼叫後人寫的 1 什麼是多型?多型性可以簡單的概括為 1個介面,多種方法 在程式執行的過程中才決定呼叫的機制 程式實現上是這樣 通過父類指標呼叫子類的函式,...