前幾天被問到,在c++裡建立乙個空類什麼都成員沒有,它佔多大記憶體?我一下子懵掉了,還真沒想過這個問題。後來查了下資料終於明白了,且聽我慢慢道來。
首先我們看一下這個測試程式:
#include using namespace std;
class test
;main()
static int x;
};main()
;class test2
};main()
;class test2
};class test3
virtual void hello2(){}
};main()
;class test2:public test1
;main()
{ test1 t1;
test2 t2;
cout<<"t1 size :"《以上輸出結果是:t1 size: 4
t2 size:8
最後總結起來就是:
1,普通的成員函式不會占用記憶體,但是普通的成員變數會占用記憶體
2,static變數和函式不會占用記憶體
3,virtual成員函式(包括純虛函式)會占用記憶體,因為會有乙個vptr指向虛函式表
4. 派生類需要加上基類所佔的記憶體
5. 對於空類,編譯器會自動新增乙個位元組
Bitmap到底占多大記憶體
學習自 由xxhdpi這種資料夾控制,稱之為density1 由機型控制,稱之為density2 斜長 螢幕寸號 這兩者決定了一張圖在記憶體中轉化成的bitmap實際的width height xwidth width density1 density2 0.5 xheight height den...
Object型別占用多大記憶體?
object佔多少記憶體,誰也不知道,按照非託管的想法是,如果你只定義乙個類,而它沒有任何資料成員,我在vs2008下,使用預設位元組對齊,class object 這樣得出來 sizeof object 為 1。在c 裡,是不能直接獲取object占用記憶體大小的,因為它根本不是乙個標準的布局。而...
C C 乙個結構體變數占多大記憶體空間的問題
直接來看相同資料結構體的幾種書寫的格式吧。格式一 1.structtagphone 2.phone1 格式二 1.structtagphone 2.phone2 格式三 1.structtagphone3 2.phone3 格式四 1.structtagphone3 2.phone4 例題 請問下面...