當類中有虛函式時,類的大小會多4個位元組
多出的這4個位元組是乙個位址,指向一張表,裡面儲存了所有虛函式的位址(虛函式表);
class base
virtual
void function_2()
virtual
void function_3()
};class sub :public base
virtual
void function_5()
virtual
void function_6()
};class sub1 :public base
virtual
void function_2()
virtual
void function_6()
};
int main()
return
0;}
虛函式與虛函式表
虛函式使用中 為什麼?1 先看虛函式表 虛函式表,簡稱虛表。每乙個有虛函式的類都有這樣乙個東西。實際上記錄了本類中所有虛函式的函式指標,也就是說是個函式指標陣列的起始位置。虛函式表的結構 它是乙個函式指標表,每乙個表項都指向乙個函式。任何乙個包含至少乙個虛函式的類都會有這樣一張表。需要注意的是vta...
虛函式,虛繼承與虛函式表
c 實現多型機制 模板技術,rtti 技術,虛函式技術,要麼是試圖做到在編譯時決議,要麼試圖做到執行時決議 虛函式 帶有 關鍵字的函式,並且不帶有 標誌的 虛繼承帶有 關鍵字的繼承,基類被稱為虛基類,會在自己物件的例項中產生虛基類指標 虛函式與菱形繼承的問題 當發生繼承時,如果派生類重寫了基類的虛函...
C 虛函式與虛函式表
概念 虛函式 virtual function 是通過一張虛函式表 virtual table 來實現的,簡稱為v table。學習虛函式的作用 理解 c 實現多型的機制 解決了繼承 覆蓋的問題。以下摘抄自 http www.cppblog.com xczhang archive 2008 01 2...