1. 程式人生 > >C++中的類所佔記憶體空間總結(其中有一段關於成員函式處於程式碼段的解釋) 2011-12-9 16:16

C++中的類所佔記憶體空間總結(其中有一段關於成員函式處於程式碼段的解釋) 2011-12-9 16:16

#include<iostream.h> class a {}; class b{}; class c:public a{ virtual void fun()=0; }; class d:public b,public c{}; int main() { cout<<"sizeof(a)"<<sizeof(a)<<endl; cout<<"sizeof(b)"<<sizeof(b)<<endl; cout<<"sizeof(c)"<<sizeof(c)<<endl; cout<<"sizeof(d)"<<sizeof(d)<<endl; return 0;} 程式執行的輸出結果為: sizeof(a) =1 sizeof(b)=1 sizeof(c)=4 sizeof(d)=8 前三種情況比較常見,注意第四種情況。類d的大小更讓初學者疑惑吧,類d是由類b,c派生邇來的,它的大小應該為二者之和5,為什麼卻是8 呢?這是因為為了提高例項在記憶體中的存取效率.類的大小往往被調整到系統的整數倍.並採取就近的法則,裡哪個最近的倍數,就是該類的大小,所以類d的大小為8個位元組.