欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來到入門教程網(wǎng)!

C語言

當(dāng)前位置:主頁 > 軟件編程 > C語言 >

C++ sizeof 實例解析

來源:本站原創(chuàng)|時間:2020-01-10|欄目:C語言|點擊: 次

在C++中使用sizeof要比C復(fù)雜很多,因為C++類中有static靜態(tài)變量,virtual虛函數(shù),還有繼承、派生等。sizeof是C語言的一種單目操作符,如C語言的其他操作符++、--等。它并不是函數(shù)。sizeof操作符以字節(jié)形式給出了其操作數(shù)的存儲大小。
sizeof使用形式有三種:sizeof(var_name)或sizeof var_name或sizeof(var_type)。

【例1】:(列子中忽略構(gòu)造及析構(gòu)函數(shù))

復(fù)制代碼 代碼如下:

class A 

    public:
        void hello(){} 
}; 
sizeof(A)= 1;

肯定不是零。舉個反例,如果是零的話,聲明一個class A a[10]對象數(shù)組,而每一個對象占用的空間是零,這時就沒辦法區(qū)分A[0],A[1]…了。

因為A是空類,占字節(jié)為1是為了區(qū)分兩個不同的對象,也可以看做是占位符,該字節(jié)的地址也就是對象的地址。但是這里的1也不是絕對的,只是編譯器這樣設(shè)定而已。
【例2】:

復(fù)制代碼 代碼如下:

class B 

    public:
         void hello(){}
         static int i;
}; 
    sizeof(B) = 1;

因為static變量為類中共享,在靜態(tài)區(qū)分配空間,在編譯時就分配了空間,不占類內(nèi)存。
【例3】:
復(fù)制代碼 代碼如下:

classC

    public:
        virtual void hello(){}
};
sizeof(C)= 4;

B類中有虛函數(shù),相應(yīng)的會有虛表指針存在,占4個字節(jié),恰好是一個指針的空間。同時,如果有多個virtual函數(shù)或有多個類繼承了C類,虛函數(shù)也只占4個字節(jié),如【例4】:
【例4】:
復(fù)制代碼 代碼如下:

class D : public C
{
    public:
        virtual void world(){}
        virtual  void nihao(){}
};
sizeof(D)= 4;

【例5】:
復(fù)制代碼 代碼如下:

class E

    public:
          virtual void hello(){}
          virtual void world(){}
          staticint i;
          static int j;
          int k;
};
     sizeof(E) = 8;

希望對你有所幫助。

上一篇:手把手教你如何優(yōu)化C語言程序

欄    目:C語言

下一篇:深入解析函數(shù)指針與返回函數(shù)的指針

本文標(biāo)題:C++ sizeof 實例解析

本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/4278.html

網(wǎng)頁制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語言數(shù)據(jù)庫服務(wù)器

如果侵犯了您的權(quán)利,請與我們聯(lián)系,我們將在24小時內(nèi)進行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有