含有虛函式多重繼承派生類記憶體布局

2021-07-10 12:46:20 字數 561 閱讀 3577

今天剛學關於c++多型,學了含有虛函式的類的記憶體情況。在多基類的派生類中,其中每個基類都含有虛函式,在這種情況下派生類的記憶體布局是怎麼樣的?

對於多重繼承,有多少基類含有與派生類同名函式虛函式,派生類中就會存在多少個虛函式表和虛函式表指標,編譯器會把第乙個基類的虛函式表指標存放在派生類的起始位址,把第二個基類的虛函式表指標緊挨著第乙個虛函式表指標存放,一次類推,直到存放完所有基類的虛函式表指標。

下面通過**說明:

#include

using namespace std;

typedef  void (*fun)(); //定義乙個函式指標型別

class  base;

class  base2;

int main(int argc, char const *argv)

輸出結果是:

fun child

base fun2

base disconstructor

fun child

funbase22

此篇文章是本人參考書上和老師上課講的知識總結出來的,如有錯的地方,歡迎指出

多重繼承 派生類

作 者 劉慧豔 完成日期 2014 年6月20日 版 本 號 v1.0 問題描述 分別宣告teacher 教師 類和cadre 幹部 類,採用多重繼承方式 由這兩個類派生出新類teacher cadre 教師兼幹部 類。要求 1 在兩個基類中都包含姓名 年齡 性別 位址 等資料成員。2 在teach...

C 虛繼承派生類建構函式的寫法

普通的繼承中,我們可以在當前類 c 建構函式的初始化表中指明如何去構造直接父類 b 然後在該父類 b 建構函式的初始化表中指明如何構造祖先類 a class a a int d data d private int data class b public a b int x a x class c ...

C 派生類函式過載與虛函式繼承詳解

目錄 二 同名函式隱藏與虛函式覆蓋 類的關係圖 派生類的作用域巢狀在基類之內 bulk quote bulk cout bulk.isbn 名字isbn解析過程 成員名字的查詢型別由靜態型別決定 給disc quote新增乙個成員,返回折扣政策 class disc quote public quo...