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

  • 5
  • 0
  • 约2.51千字
  • 约 7页
  • 2018-06-03 发布于河南
  • 举报
详细介绍c 中的类对象内存模型

详细介绍c++中的类对象内存模型 发布时间: 2011-6-28 10:05 ?? 作者: 未知 ?? 来源: 51Testing软件测试网采编   内存模型描述的是程序中各变量(实例域、静态域和数组元素)之间的关系,以及在实际计算机系统中将变量存储到内存和从内存取出变量这样的低层细节.不同平台间的处理器架构将直接影响内存模型的结构.   首先介绍一下C++中有继承关系的类对象内存的布局:   在C++中,如果类中有虚函数,那么它就会有一个虚函数表的指针__vfptr,在类对象最开始的内存数据中。之后是类中的成员变量的内存数据。   对于子类,最开始的内存数据记录着父类对象的拷贝(包括父类虚函数表指针和成员变量)。之后是子类自己的成员变量数据。   对于子类的子类,也是同样的原理。但是无论继承了多少个子类,对象中始终只有一个虚函数表指针。   为了探讨C++类对象的内存布局,先来写几个类和函数   首先写一个基类: class?Base? ? {? ? public:? ? virtual?void?f()?{?cout??Base::f??endl;?}? ? virtual?void?g()?{?cout??Base::g??endl;?}? ? virtual?void?h()?{?cout??Base::h??endl;?}? ? int?base;? ? protecte

文档评论(0)

1亿VIP精品文档

相关文档