c 虛函式對物件大小的影響

2021-06-25 12:37:33 字數 543 閱讀 6294

如果不是虛繼承:

成員+父類大小

不考慮子類虛函式和指向父類的指標

如果是虛函式:

父類大小+成員+指向父類的指標+新的虛函式表指標(如果有新的虛函式)

#include "stdafx.h"

#includeusing namespace std;

class base

};class derived1: public base// 4+4 8

;class derived2: public base//父類4+char a[3] 4 8

char a[3];

};class derived3: public virtual base//父類4+char a[3] 4+指向父類的指標 12

;class derived4: public virtual base//父類4+char a[3] 4+指向父類的指標 +新的虛函式表的指標16

};int _tmain(int argc, _tchar* argv)

虛繼承對類大小的影響

虛繼承對類大小的影響 virtual 存在,共享,間接 include using namespace std define prt x coutprt dd 執行時會根據虛基類表找到dd中的虛基類部分的位址,prt pp bb 將其賦值給pp return 0 虛繼承後類的記憶體模型 b1 虛基類...

C 面對物件的基礎

c 是一門面對物件的程式語言,面對物件 簡稱oo,object oriented 是一種編寫方式,直接從物件出發 不過這只是編寫方式,一樣要從整個流程看待需要編寫的程式,知道其過程 萬物皆為物件 物件 物件的屬性 認作為物件的一類事物的靜態特徵 物件的方法 認作為物件的一類事物的動態特徵 物件 屬性...

C的面對物件引出C

c語言用的越多,越能理解為什麼會有c 的誕生 繼承c語言不能繼承只能包含,乙個結構體包含另外乙個結構體,所以當你要呼叫繼承的屬性或者方法時候,會發現d c b a這種情況,當然巢狀這麼深的情況不多見。過載一般是通過傳函式指標或者事先定義好的指令實現,最為熟知的就是ioctl和qsort。預設引數 顯...