父類中有虛函式,父類繼承子類後:
1)有各自的虛表指標和虛表;
2)對於子類中未被重寫的虛函式,在父子類各自虛表中儲存的函式位址都是父類中的虛函式位址;
3)對於子類中被重寫的虛函式,在父子類各自的虛表中儲存的函式位址是不同的;
exp1---無覆蓋時
#include using namespace std;
class baseexp2 ---覆蓋時
#include using namespace std;
class base
virtual void fun2()
public:
int b_i;
};
class devise:public baseint d_i;
};
int main()
虛指標和虛表
所以當用sizeof來獲取含有虛函式的類的大小的時候,會發現結果 比 裡面還有的資料 大4個位元組。這四個位元組就是 虛 指標。32位系統 子類裡面有父類的成員變數。當然,父類有虛函式,自然 子類 就有虛函式。虛表裡放的都是虛函式的指標,指向虛函式的位址。子類即使沒有重寫 父類的 虛函式,子類的虛表...
關於虛表和虛表指標
1 動態多型 動態繫結 在程式執行期間 非編譯期間 判斷所引用物件的實際型別,根據其實際型別呼叫相應的方法。2 動態多型具體實現 class a virtual void funtest2 int a class b1 public a virtual void funtest3 int b1 vo...
虛函式,虛表,虛表指標
分享一篇文章,詳細解釋了為什麼通過基類指標指向基類物件或派生類物件,就可以呼叫相應類的虛函式。自 一 概述 為了實現c 的多型,c 使用了一種動態繫結的技術。這個技術的核心是虛函式表 下文簡稱虛表 本文介紹虛函式表是如何實現動態繫結的。二 類的虛表 每個包含了虛函式的類都包含乙個虛表。我們知道,當乙...