最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

你真的知道C++對象大小嗎?

 更新時間:2021年01月08日 15:06:12   作者:雙魚座boyy  
這篇文章主要給大家介紹了關(guān)于C++對象大小的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

我們都直到char大小為1,int為4,那么C++中對象的大小是多少呢?

看三個問題:

  • C++中函數(shù)占不占對象的大小
  • 空類的大小是多少?
  • 如果類中有虛函數(shù),類的大小是多少?

一,C++中函數(shù)占不占對象的大小

看一段代碼:

可以看出,類的大小即為類的屬性a的大小為4,函數(shù)并不占對象的大小。

那么這個的原因是什么呢?

原因:

這樣定義的好處就是為了節(jié)省空間的大小。

假設此時類中有10個函數(shù),類又定義了100個對象。如果每個對象都包含一個函數(shù)的大小,那么就需要占用1000個函數(shù)空間的位置,這樣極大的消耗了資源。

實際上類的函數(shù)是放在代碼區(qū)的,哪個對象需要調(diào)用函數(shù),則從代碼區(qū)調(diào)用,因為函數(shù)并不是對象獨有屬性,所以并不沖突,這樣僅僅占10個函數(shù)空間位置就夠了。

這樣一對比,函數(shù)放在代碼區(qū)節(jié)省了很多的資源,因此函數(shù)并不占用對象的大小。

至于對象放的位置,如果new的就在堆區(qū),不然就在棧區(qū)。

二,空類的大小是多少?

看代碼:

我們會發(fā)現(xiàn),空類的大小變成了1,正常不應該是0嗎?

這樣設置的原因是因為每一個對象實例化都需要空間,這里系統(tǒng)默認給了一個占位符,占1字節(jié)大小

三,如果類中有虛函數(shù),類的大小是多少?

看圖片:

對比上面兩種情況,空類大小為1,但是函數(shù)又不占用空間,為什么函數(shù)變?yōu)樘摵瘮?shù)卻變成了4呢?

因為當有虛函數(shù)時,編譯器會給這個類加上虛函數(shù)指針 vptr(32位是4,64位是8)

此時類中有了指針,因此對象的大小就變?yōu)榱?。

上面就是類中不同情況的大小。

總結(jié)

到此這篇關(guān)于你真的知道C++對象大小的文章就介紹到這了,更多相關(guān)C++對象大小內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 如何實現(xiàn)在C++中調(diào)用C函數(shù)

    如何實現(xiàn)在C++中調(diào)用C函數(shù)

    這篇文章主要介紹了如何實現(xiàn)在C++中調(diào)用C函數(shù)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • C/C++?Qt?StatusBar底部狀態(tài)欄應用教程

    C/C++?Qt?StatusBar底部狀態(tài)欄應用教程

    Qt窗體中默認會附加一個QstatusBar組件,狀態(tài)欄組件位于主窗體的最下方,其作用是提供一個工具提示功能。本文主要介紹了StatusBar底部狀態(tài)欄的應用教程,需要的同學可以學習一下
    2021-12-12
  • 基于C++實現(xiàn)BMI身體質(zhì)量指數(shù)計算工具

    基于C++實現(xiàn)BMI身體質(zhì)量指數(shù)計算工具

    BMI(Body?Mass?Index,身體質(zhì)量指數(shù)),也稱為體重指數(shù),是一種常用的衡量成人人體肥胖程度的指標,本文就來用C++編寫一個簡單的BMI計算工具吧
    2023-10-10
  • C++中的四種類型轉(zhuǎn)換

    C++中的四種類型轉(zhuǎn)換

    類型轉(zhuǎn)換有c風格的,當然還有c++風格的。c風格的轉(zhuǎn)換的格式很簡單(TYPE)EXPRESSION,但是c風格的類型轉(zhuǎn)換有不少的缺點,有的時候用c風格的轉(zhuǎn)換是不合適的,因為它可以在任意類型之間轉(zhuǎn)換,
    2015-08-08
  • 關(guān)于C++中strcpy函數(shù)例題講解

    關(guān)于C++中strcpy函數(shù)例題講解

    在本篇文章里小編給大家整理的是關(guān)于C++中strcpy函數(shù)例題講解內(nèi)容,需要的朋友們可以參考下。
    2020-05-05
  • C++在C語言基礎之上增強的幾個實用特性總結(jié)

    C++在C語言基礎之上增強的幾個實用特性總結(jié)

    這篇文章主要介紹了C++在C語言基礎之上增強的幾個實用特性總結(jié),包括C++中更強的類型約束以及結(jié)構(gòu)體方面等一些更加高級的特性,需要的朋友可以參考下
    2016-03-03
  • C++中的RAII機制詳解

    C++中的RAII機制詳解

    這篇文章主要介紹了C++中的RAII機制詳解,RAII是Resource Acquisition Is Initialization的簡稱,是C++語言的一種管理資源、避免泄漏的慣用法,需要的朋友可以參考下
    2014-09-09
  • OpenCV實現(xiàn)圖像轉(zhuǎn)換為漫畫效果

    OpenCV實現(xiàn)圖像轉(zhuǎn)換為漫畫效果

    這篇文章主要為大家詳細介紹了OpenCV實現(xiàn)圖像轉(zhuǎn)換為漫畫效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-08-08
  • C++接口文件小技巧之PIMPL詳解

    C++接口文件小技巧之PIMPL詳解

    C++ 里面有一些慣用法(idioms),如 RAII,PIMPL,copy-swap、CRTP、SFINAE 等,今天要說的是 PIMPL,即 Pointer To Implementation,指向?qū)崿F(xiàn)的指針,感興趣的可以了解一下
    2023-06-06
  • C語言中如何獲取函數(shù)內(nèi)成員的值你知道嗎

    C語言中如何獲取函數(shù)內(nèi)成員的值你知道嗎

    這篇文章主要為大家詳細介紹了C語言中如何獲取函數(shù)內(nèi)成員的值的方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03

最新評論

苏尼特右旗| 蓝山县| 蒙城县| 乌鲁木齐市| 谢通门县| 新闻| 六盘水市| 澄迈县| 新昌县| 达日县| 雅江县| 广灵县| 德庆县| 西吉县| 兴城市| 凤城市| 宣化县| 南投县| 奈曼旗| 丰县| 梅河口市| 宝山区| 湖口县| 景洪市| 桂林市| 桐乡市| 夏河县| 玛多县| 大渡口区| 永安市| 南宫市| 黑水县| 渑池县| 红桥区| 信宜市| 佳木斯市| 兴城市| 崇信县| 莱阳市| 卢湾区| 蕉岭县|