亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

深入分析C++中類的大小

2020-01-26 16:18:33
字體:
來源:轉載
供稿:網友

首先看一個例子:

復制代碼 代碼如下:

#include <iostream>
 using namespace std;

 class A{};

 class B
 {
     int b;
     char c;
 };

 class C
 {
     int c1;   
     static int c2;
 };
 int C::c2 = 1;

 class D:public C,public B{
     int d;
 };
 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)=8

sizeof(C)=4

sizeof(D)=16


對于類A來說,雖然A是一個空類,但為了便于空類進行實例化,編譯器往往會給它分配一個字節,這樣A實例化后便在內存中有了一個獨一無二的地址.對于類B,B的大小應為sizeof(int)+sizeof(char)=5,但是考慮內存對齊,B的大小應為8.對于類C,類的靜態成員變量被放在全局區,和類的普通成員并沒有放在一塊。類的靜態成員被聲明后就已存在,而非靜態成員只有類被實例化后才存在。所以C的大小為sizeof(int)=4。D的大小為B+C的大小+自身數據成員的大小,一共為16.

 

==========================分割線在這里====================================

下面討論含有虛函數的類的大小:

復制代碼 代碼如下:

#include <iostream>
 using namespace std;

 class A
 {
 public:
     void virtual aa(){};
 };

 class B:public A
 {
     void virtual bb(){};
 };

 class C:virtual A
 {
 public:
     void virtual aa(){};
     void cc(){};
 };

 class D:virtual A
 {
 public:
     void virtual dd(){};
 };

 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)=4

sizeof(B)=4

sizeof(C)=8

sizeof(D)=12

對于class A,它含有一個虛函數,編譯器會為虛函數生成一張虛函數表,來記錄對應的函數地址,為此,在class A的內存地址中要有一個vfptr_A指針指向這個虛表,所以class A的大小為指針大小,即4.(注意,無論類中有多少個虛函數,它們的大小都是4,因為內存中只需要保存這個指針即可)。

對于class B,它是public繼承A,雖然它也有一個虛函數,但是從結果看,B應該和A都在B的vtable(虛表中),所以class B的大小為4.

對于class C,它是vitual 繼承A,所以要有一個指向父類A的指針,占有4字節大小aa()是繼承自class A的虛函數,從結果來看,它沒有在內存中占有空間,所以C的大小為sizeof(A)+4=8.

對于class D,它是虛繼承class A,同上,要有一個指向父類A的指針,同時,class D中有虛函數,所以要有一個指向虛表的指針,所以sizeof(D)=sizeof(A)+4+4=12

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
色999日韩欧美国产| 欧美亚洲视频在线观看| 国外色69视频在线观看| 成人97在线观看视频| 欧美香蕉大胸在线视频观看| 日韩风俗一区 二区| 亚州欧美日韩中文视频| 欧美成人在线网站| 亚洲人成在线观看网站高清| 亚洲va久久久噜噜噜久久天堂| 国产精品视频永久免费播放| 国产精品亚发布| 欧美成人亚洲成人日韩成人| 国产精品一区av| 国产精品99久久久久久人| 中文字幕v亚洲ⅴv天堂| 久久久影视精品| 国产精品亚洲网站| 欧美精品中文字幕一区| 久久婷婷国产麻豆91天堂| 2019国产精品自在线拍国产不卡| 2019中文在线观看| 成人网页在线免费观看| 欧美综合国产精品久久丁香| 欧美性生交大片免费| 精品久久中文字幕久久av| 国产精品自拍视频| 91日本在线观看| 久久久久久久久久久免费| 国产亚洲欧美一区| 亚洲最大的网站| 国产在线视频欧美| 91亚洲精品久久久久久久久久久久| 国产精品9999| 欧美福利视频在线观看| 91禁外国网站| 欧美成人免费大片| 亚洲精品视频中文字幕| 欧美激情小视频| 久久99久久99精品免观看粉嫩| 成人a在线视频| 国产精品国产三级国产专播精品人| 国产大片精品免费永久看nba| 亚洲最大av在线| 日韩在线观看免费全| 亚洲最新av网址| 91av网站在线播放| 久久精品国产亚洲精品| 亚洲人精选亚洲人成在线| 国产成人综合精品在线| 欧美一级大胆视频| 久久视频在线直播| 久青草国产97香蕉在线视频| 日韩在线中文字幕| 国产精品一区二区三区免费视频| 精品国内自产拍在线观看| 国产精品久久久久久婷婷天堂| 欧美精品久久久久久久久久| 91精品久久久久久久久久久久久久| 韩国日本不卡在线| 国产视频丨精品|在线观看| 日韩中文字幕精品视频| 亚洲性日韩精品一区二区| 国产精品久久久久免费a∨大胸| 国产成人一区二区三区电影| 68精品久久久久久欧美| 日韩欧美在线中文字幕| 国产自产女人91一区在线观看| 亚洲精品大尺度| 久久成人亚洲精品| 亚洲免费av片| 精品国产一区久久久| 91精品国产综合久久久久久久久| 国产精品国产福利国产秒拍| 69久久夜色精品国产7777| 91高潮在线观看| 日韩欧美在线一区| 亚洲男女自偷自拍图片另类| 国内精久久久久久久久久人| 日韩精品免费一线在线观看| 69久久夜色精品国产69乱青草| 欧美视频在线观看免费网址| 91国产精品电影| 国产综合久久久久| 伊人久久久久久久久久久| 成人欧美一区二区三区在线| 91在线观看免费观看| 久久国产精品久久久久| 亚洲人成电影在线| 久久久久久久国产精品| 国产精品男人爽免费视频1| 在线观看日韩www视频免费| 欧美电影免费在线观看| 日韩av影视综合网| 狠狠躁夜夜躁人人爽超碰91| 亚洲精品美女免费| 91免费版网站入口| 欧美综合第一页| 欧美性猛交xxxx免费看久久久| 日韩av在线一区二区| 国内精品久久久久影院优| 国产成人精品999| 国产一区二区在线免费| 亚洲第一中文字幕| 欧美成人免费在线视频| 久久精品视频网站| www.日韩系列| 成人a视频在线观看| 国产日韩在线精品av| www.久久撸.com| 亚洲欧美另类在线观看| 亚洲精品资源美女情侣酒店| 欧美有码在线观看| 欧美精品久久久久a| 91精品国产网站| 久久精品国产一区| 午夜精品久久久99热福利| 国产欧美精品一区二区| 日韩成人激情视频| 久久久综合av| 久久久精品国产| 日韩成人av网址| 亚洲欧洲在线视频| 亚洲国产三级网| 国产一区二区美女视频| 久久精品视频中文字幕| 久久高清视频免费| 国产福利成人在线| 久久久精品在线观看| 美女视频久久黄| 国产精品观看在线亚洲人成网| 日本精品中文字幕| 国产午夜精品视频| 国产精品一二三视频| 久久久久日韩精品久久久男男| 最新亚洲国产精品| 日韩精品视频免费| 国产一区二区三区视频在线观看| 成人久久一区二区| 国产精品专区一| 久久精品亚洲一区| 久久久久久国产| 欧美激情在线有限公司| 欧美成人免费一级人片100| 国产精品福利网站| 精品久久国产精品| 久久久久久亚洲精品| 日韩精品在线观看一区二区| 久久精品国产久精国产一老狼| 亚洲一区二区免费在线| 狠狠爱在线视频一区| 国产精品美女久久久免费| 97超碰国产精品女人人人爽| 国产一区二区精品丝袜| 91超碰caoporn97人人| 欧美性xxxx| 欧美在线一区二区三区四| 国产欧美 在线欧美| 国产精品美女www| 久久影院模特热| 91av在线看| 中文字幕亚洲欧美日韩2019| 亚洲精品国产成人| 久久精品欧美视频|