首页 详细介绍c++中的类对象内存模型

详细介绍c++中的类对象内存模型

举报
开通vip

详细介绍c++中的类对象内存模型 详细介绍 c++中的类对象内存模型 内存模型描述的是程序中各变量(实例域、静态域和数组元素)之间的关系,以及在实际计 算机系统中将变量存储到内存和从内存取出变量这样的低层细节.不同平台间的处理器架构 将直接影响内存模型的结构. 首先介绍一下C++中有继承关系的类对象内存的布局: 在C++中,如果类中有虚函数,那么它就会有一个虚函数表的指针__vfptr,在类对象最 开始的内存数据中。之后是类中的成员变量的内存数据。 对于子类,最开始的内存数据记录着父类对象的拷贝(包括父类虚函数表指针和成员变 量)。之后是...

详细介绍c++中的类对象内存模型
详细介绍 c++中的类对象内存模型 内存模型描述的是程序中各变量(实例域、静态域和数组元素)之间的关系,以及在实际计 算机系统中将变量存储到内存和从内存取出变量这样的低层细节.不同平台间的处理器架构 将直接影响内存模型的结构. 首先介绍一下C++中有继承关系的类对象内存的布局: 在C++中,如果类中有虚函数,那么它就会有一个虚函数 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 的指针__vfptr,在类对象最 开始的内存数据中。之后是类中的成员变量的内存数据。 对于子类,最开始的内存数据记录着父类对象的拷贝(包括父类虚函数表指针和成员变 量)。之后是子类自己的成员变量数据。 对于子类的子类,也是同样的原理。但是无论继承了多少个子类,对象中始终只有一个 虚函数表指针。 为了探讨 C++类对象的内存布局,先来写几个类和函数 首先写一个基类: 然后,我们多种不同的继承情况来研究子类的内存对象结构。 1. 无虚函数集继承 这个子类 Child1 没有继承任何一个基类的虚函数,因此它的虚函数表如下图: 我们可以看出,子类的虚函数表中,先存放基类的虚函数,在存放子类自己的虚函数。 2. 有一个虚函数继承 当子类重载了父类的虚函数,则编译器会将子类虚函数表中对应的父类的虚函数替换成 子类的函数。 3. 全部虚函数都继承 4. 多重继承 多重继承,即类有多个父类,这种情况下的子类的内存结构和单一继承有所不同。 我们可以看到,当子类继承了多个父类,那么子类的内存结构是这样的: 子类的内存中,顺序 5. 菱形继承
本文档为【详细介绍c++中的类对象内存模型】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_117578
暂无简介~
格式:pdf
大小:234KB
软件:PDF阅读器
页数:7
分类:互联网
上传时间:2012-10-05
浏览量:16