C 多型機制

2021-06-29 00:32:25 字數 994 閱讀 9369

一、多型的基本概念

多型(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個介面,多種方法 在程式執行的過程中才決定呼叫的機制 程式實現上是這樣 通過父類指標呼叫子類的函式,...