求類的資料成員的大小

2021-04-29 06:23:41 字數 467 閱讀 3027

前陣子點點問我乙個問題:

對於浦東的變數,我們可以使用sizeof(obj)來求其大小

但是對於乙個類的資料成員,卻不能用sizeof(類名::資料成員)的方式來求其大小

有沒有什麼辦法可以實現類似的需求呢?

下面是我提供的一種解決方案

但是該解決方案有乙個缺點,就是只能對public的資料成員求值

對於private或者protected的資料成員,則只能在類或者友元內使用該巨集

以下是所給的**

#include

template

membert sizeof_(membert classt::*);

#define

sizeof(member) sizeof (sizeof_(&member))

class

class ;

int_tmain(int argc, _tchar* argv)

求c 類的大小

初學者在學習物件導向的程式語言時,或多或少的都些疑問,我們寫的 與最終生編譯成的 卻 大相徑庭,我們並不知道編譯器在後台做了什麼工作。這些都是由於我們僅停留在語言層的原因,所謂語言層就是教會我們一些基本的語法法則,但不會告訴我們為什麼這麼做?今天和大家談的一點感悟就是我在學習程式設計過程中的一點經驗...

類物件模型實驗 類資料成員大小

include include using namespace std c 物件記憶體模型 一 空類位元組大小 class emptyclass 二 物件型別占用位元組大小 結構體的有效對齊值的確定 1 當未明確指定時,以結構體中最長的成員的長度為其有效值 2 當用 pragma pack n 指定...

sizeof求類大小

1 空類的大小及多重繼承的空類 class a class a2 class b public a class c public virtual b class d public a,public a2 空類所佔空間為1,單一繼承的空類空間也為1,多重繼承的空類空間也為1,虛繼承涉及到虛表 虛指標 ...