C 物件占多大記憶體?

2021-06-14 22:47:44 字數 768 閱讀 8612

前幾天被問到,在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 例題 請問下面...