假设我创建一个对象而不使用像这样的新运算符:
Object b;
我正在使用对象类的默认构造函数。说这个类给对象一个属性int objectID;
。我知道如果定义了Display()方法,可以通过执行b.Display()来操纵对象。我知道,当我以这种方式创建对象时,它及其属性存储在堆栈中。
但是我不知道b
到底包含什么?
((我知道如果我通过这种方式由对象创建Object * b = new Object;
b会指向将存储在堆上的属性objectID。]
谢谢!
如果您在堆上分配了Object
,它将包含与堆中存储的数据完全相同的数据:成员变量,填充,vtable指针,基类以及其他我遗忘的内容。由于这是您必须绘制内存布局的练习,因此我假设Object
没有任何虚函数或基类,因此它只是成员变量,也可能是填充。