欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

你真的知道C++對(duì)象大小嗎?

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

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

看三個(gè)問題:

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

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

看一段代碼:

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

那么這個(gè)的原因是什么呢?

原因:

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

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

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

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

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

二,空類的大小是多少?

看代碼:

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

這樣設(shè)置的原因是因?yàn)槊恳粋€(gè)對(duì)象實(shí)例化都需要空間,這里系統(tǒng)默認(rèn)給了一個(gè)占位符,占1字節(jié)大小

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

看圖片:

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

因?yàn)楫?dāng)有虛函數(shù)時(shí),編譯器會(huì)給這個(gè)類加上虛函數(shù)指針 vptr(32位是4,64位是8)

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

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

總結(jié)

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

相關(guān)文章

  • C語言中的函數(shù)指針基礎(chǔ)學(xué)習(xí)教程

    C語言中的函數(shù)指針基礎(chǔ)學(xué)習(xí)教程

    這篇文章主要介紹了C語言中的函數(shù)指針基礎(chǔ)學(xué)習(xí)教程,包括函數(shù)指針作為參數(shù)來傳遞等重要知識(shí),需要的朋友可以參考下
    2016-04-04
  • c++ typeid關(guān)鍵字的使用

    c++ typeid關(guān)鍵字的使用

    這篇文章主要介紹了c++ typeid關(guān)鍵字的使用,幫助大家更好的理解和使用c++,感興趣的朋友可以了解下
    2020-11-11
  • C++ 成員變量的初始化順序問題詳解

    C++ 成員變量的初始化順序問題詳解

    這篇文章主要介紹了C++ 成員變量的初始化順序問題詳解的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • 深入理解C語言的邏輯控制

    深入理解C語言的邏輯控制

    這篇文章主要介紹了C語言的邏輯控制,對(duì)C語言的邏輯控制有較為深入的剖析,需要的朋友可以參考下
    2014-07-07
  • C語言strtod()函數(shù)案例詳解

    C語言strtod()函數(shù)案例詳解

    這篇文章主要介紹了C語言strtod()函數(shù)案例詳解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • Qt實(shí)現(xiàn)繪制一個(gè)簡單多邊形的示例代碼

    Qt實(shí)現(xiàn)繪制一個(gè)簡單多邊形的示例代碼

    QT提供了圖形繪制接口QPainter,通過該接口可以繪制多種圖形,包括多邊形。本文就來利用它實(shí)現(xiàn)繪制一個(gè)簡單的多邊形,感興趣的可以嘗試一下
    2022-11-11
  • QT使用canon sdk拍照并保存到本機(jī)的方法示例

    QT使用canon sdk拍照并保存到本機(jī)的方法示例

    這篇文章主要介紹了QT使用canon sdk拍照并保存到本機(jī)的方法示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • C語言實(shí)現(xiàn)學(xué)生管理系統(tǒng)

    C語言實(shí)現(xiàn)學(xué)生管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)學(xué)生管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • 字符串拷貝函數(shù)memcpy和strncpy以及snprintf 的性能比較

    字符串拷貝函數(shù)memcpy和strncpy以及snprintf 的性能比較

    以下是對(duì)字符串拷貝函數(shù)memcpy和strncpy以及snprintf它們之間的性能進(jìn)行了比較,需要的朋友可以過來參考下
    2013-07-07
  • C語言中“不受限制”的字符串函數(shù)總結(jié)

    C語言中“不受限制”的字符串函數(shù)總結(jié)

    這篇文章主要給大家總結(jié)介紹了C語言中一些“不受限制”的字符串函數(shù),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03

最新評(píng)論