物件記憶體布局 15

2021-08-23 14:50:00 字數 683 閱讀 8635

前篇:

和物件記憶體布局 (14)

差不多,只是改動了兩個繼承關係。幾個類的繼承關係如下圖,這種繼承方式不是很有實際意義,在此純粹是**類的memory layout。

**如下:

#include

using namespace std;

class base ;

class derived1 : public virtual base ;

class derived2 : public virtual base ;

class childderived : public virtual derived1, public virtual derived2 ;

int main(void)

注意:因為可能出現負數,所以在上面的程式中,將原來的unsigned long* 改為了int*。執行結果:

**如下:

後篇:

物件記憶體布局 15

和物件記憶體布局 14 差不多,只是改動了兩個繼承關係。幾個類的繼承關係如下圖,這種繼承方式不是很有實際意義,在此純粹是 類的memory layout。如下 include using namespace std class base class derived1 public virtual b...

物件記憶體布局 1

內容概要 滿足下面2個條件時,1.父類有虛函式,子類無虛函式 即無虛函式重寫或無虛函式覆蓋 2.非虛繼承 類物件之記憶體布局1.base類中有兩個虛函式vfbase 1 vfbase 2 和乙個整形成員變數m base,derived類中有乙個整形成員變數m derived,二者的關係如下 如下 i...

物件記憶體布局 3

內容概要 滿足下面2個條件時,1.父類無虛函式,子類有虛函式 2.非虛繼承 類物件之記憶體布局 前篇 http blog.csdn.net pathuang68 archive 2009 04 23 4101977.aspx 如果將base中的兩個虛函式刪除,情況有會怎麼樣呢?將base中的兩個虛函...