#include using namespace std;
class base
; int main()
; int main()
; int main()
private:
int a; //佔4位元組
char *p; //4位元組指標
};
class derive:public base
;
~derive(){};
private:
static int st; //非例項獨佔
int d; //佔4位元組
char *p; //4位元組指標
};
int main()
{
cout<20
base類裡的int a;char *p;佔8個位元組。而虛析構函式virtual ~base();的指標佔4子位元組。其他成員函式不歸入sizeof統計。
derive類首先要具有base類的部分,也就是佔12位元組。int d;char *p;佔8位元組
static int st;不歸入sizeof統計,所以一共是20位元組。
求乙個類的sizeof應考慮的問題
昨天面試,面試官讓我說一說求乙個類的sizeof應該考慮的問題,心想,太好了,之前sizeof可是做了不少功夫,就說了 類的非靜態 非全域性成員 如果有 虛函式就要加上乙個 指向虛表的指標 4位元組大小,然後說,大概是這樣。面試官就問,虛函式的實現機制是?大 概講了一下虛表之類的東東 然後他問,那如...
求乙個類的sizeof應考慮的問題
昨天面試,面試官 讓我說一說求乙個類的sizeof應該考慮的問題,心想,太好了,之前sizeof可是做了不少功夫,就說了類的非靜 態 非全域性成員,如果有虛函式就要加上乙個指向虛表的指標,4位元組大小,然後說,大概是這樣。面試官就問,虛函 數的實現機制 是?大概講了一下虛表之類的東東,然後他問,那如...
sizeof求類大小
1 空類的大小及多重繼承的空類 class a class a2 class b public a class c public virtual b class d public a,public a2 空類所佔空間為1,單一繼承的空類空間也為1,多重繼承的空類空間也為1,虛繼承涉及到虛表 虛指標 ...