在堆栈上创建的对象包含什么?

问题描述 投票:0回答:1

假设我创建一个对象而不使用像这样的新运算符:

Object b;

我正在使用对象类的默认构造函数。说这个类给对象一个属性int objectID;。我知道如果定义了Display()方法,可以通过执行b.Display()来操纵对象。我知道,当我以这种方式创建对象时,它及其属性存储在堆栈中。

但是我不知道b到底包含什么?

((我知道如果我通过这种方式由对象创建Object * b = new Object; b会指向将存储在堆上的属性objectID。]

谢谢!

c++ object pointers memory-management stack
1个回答
0
投票

如果您在堆上分配了Object,它将包含与堆中存储的数据完全相同的数据:成员变量,填充,vtable指针,基类以及其他我遗忘的内容。由于这是您必须绘制内存布局的练习,因此我假设Object没有任何虚函数或基类,因此它只是成员变量,也可能是填充。

© www.soinside.com 2019 - 2024. All rights reserved.