空類的大小是多少?原因是什麼?

2021-08-21 12:42:28 字數 640 閱讀 7276

首先,我們要知道,乙個類是沒有大小的,應該說成是類的例項的大小。

class a;a

a;

其中,sizeof(a) == sizeof(a);

乙個物件的大小大於等於所有的非靜態成員大小的總和。

這是為什麼呢?

對於有虛函式的類,需要有乙個方法為它的實體提供型別資訊和虛函式入口,一般的方法是建立乙個虛表(虛函式表)。在例項化時,在物件中增加乙個指向虛函式的指標,許多編譯器都是這樣規定的

編譯器優化,因為對於大多數cpu來說,cpu字長的整數倍操作起來更快,因此對於這些成員加起來如果不夠這個整數倍,有可能編譯器會插入多餘的內容湊足這個整數倍,此外,有時候相鄰的成員之間也有可能因為這個目的被插入空白,這個叫做記憶體對齊。

sizeof類得到的結果等於各非靜態資料成員(不包括成員函式)的總和加上編譯器額外增加的位元組。後者依賴於不同的編譯器實現,c++標準對此不做任何保證。

乙個類中成員函式、虛函式、靜態資料成員都是不占用類的儲存空間的。

因為空類也進行了例項化,每個例項在記憶體中都有乙個獨一無二的位址,為了達到這個目的,編譯器一般會給乙個空類隱含的加乙個位元組,這樣就可以達到空類在例項化後得到了獨一無二的位址的目的。

近視的主要原因是什麼

近視的主要原因究竟是什麼呢?可能不少孩子家長認為,電子產品,手機,電腦,電視等是孩子們近視的主要原因。然而,這門課程的作者講了乙個例子,他接診的乙個五歲的小女孩,近視300多讀。她的爸爸媽媽在和醫生交流時,十分疑惑,他們說,為了防止孩子近視,孩子從來沒有看過手機,電腦,電視螢幕這些電子產品,為什麼孩...

視窗鏡片受歡迎的原因是什麼?

視窗鏡片在人們的日常生活中扮演著非常重要的角色,目前市場上許多智慧型產品上都會配置鏡片。同時不得不承認,視窗鏡片的使用確實會讓整個產品變得美觀實用,從而俘獲不少消費者的心且熱度愈來愈高。除此之外,視窗鏡片受歡迎的原因具體有以下三點 1 耐高溫且耐強酸強鹼 專 業的視窗鏡片產品具備優異的耐高溫效能,這...

阻礙了CRM系統發展的原因是什麼?

全球企業發展crm系統時,都會面領著各種各樣的難題,主要包括這些項 部門之間各自為政,缺乏整合 缺乏組織上的全面支援和必要的資源,沒有形成共識 缺乏變革管理,導致過渡時期混亂,以及實際運作中效果差強人意。阻礙crm系統發展的原因,人的影響力尤為明顯,影響力最大的主要來自管理層和員工兩方面 crm系統...