歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> C++ 類占用空間計算方式

C++ 類占用空間計算方式

日期:2017/3/1 9:40:51   编辑:Linux編程

C++ 類占用空間計算方式

1、一個類占用的空間主要是屬性占用空間,而成員函數一般不占用空間,但是虛函數占用空間,需要說明的是,無論多少個虛函數,只要占用4個字節即可,也就是索引指向一個虛擬表的首位置。另外需要說明的是占用空間都考慮了對齊,所以不足4個的按照滿4個的算。


2、類的繼承,子類占用空間是父類基礎上增加本類空間即可。所以說可以認為,子類就是直接拷貝了父類的內容,然後結合自身的內容。而且存儲空間也是這個順序,即先父類分配空間,然後才是子類空間。


3、靜態成員變量不占用類空間,應該是確實沒有放入這個類的裡面,而且沒有指針指向它,只能通過類::來訪問,也就是說靜態成員是隨著類的存在而存在,而 不依賴於對象,它的存在意義主要還是區分,否則如何確定其意義,這還是體現了相關的都方一起的思想,比全局變量或者常量更方便使用和理解。


4、需要說明的是,虛函數對應的虛擬表在空間的其他位置,和對象是沒有聯系的,但是虛擬表地址是和類統一的,也就是說一旦確定,無論在哪個對象中,其指針 值是一樣的,即虛擬表位置是一定的。指針放在對象的最前面,首先是指向虛函數的虛擬表指針,然後才是其他成員變量空間。

C++ 設計新思維》 下載見 http://www.linuxidc.com/Linux/2014-07/104850.htm

C++ Primer Plus 第6版 中文版 清晰有書簽PDF+源代碼 http://www.linuxidc.com/Linux/2014-05/101227.htm

讀C++ Primer 之構造函數陷阱 http://www.linuxidc.com/Linux/2011-08/40176.htm

讀C++ Primer 之智能指針 http://www.linuxidc.com/Linux/2011-08/40177.htm

讀C++ Primer 之句柄類 http://www.linuxidc.com/Linux/2011-08/40175.htm

將C語言梳理一下,分布在以下10個章節中:

  1. Linux-C成長之路(一):Linux下C編程概要 http://www.linuxidc.com/Linux/2014-05/101242.htm
  2. Linux-C成長之路(二):基本數據類型 http://www.linuxidc.com/Linux/2014-05/101242p2.htm
  3. Linux-C成長之路(三):基本IO函數操作 http://www.linuxidc.com/Linux/2014-05/101242p3.htm
  4. Linux-C成長之路(四):運算符 http://www.linuxidc.com/Linux/2014-05/101242p4.htm
  5. Linux-C成長之路(五):控制流 http://www.linuxidc.com/Linux/2014-05/101242p5.htm
  6. Linux-C成長之路(六):函數要義 http://www.linuxidc.com/Linux/2014-05/101242p6.htm
  7. Linux-C成長之路(七):數組與指針 http://www.linuxidc.com/Linux/2014-05/101242p7.htm
  8. Linux-C成長之路(八):存儲類,動態內存 http://www.linuxidc.com/Linux/2014-05/101242p8.htm
  9. Linux-C成長之路(九):復合數據類型 http://www.linuxidc.com/Linux/2014-05/101242p9.htm
  10. Linux-C成長之路(十):其他高級議題

Copyright © Linux教程網 All Rights Reserved