我们来考虑一下这个例子。堆分配的对象是否将其成员分配到堆栈上?
class StaticlyManagedObject
{
//some class members....
}
class DynamiclyManagedObject
{
StaticlyManagedObject _staticlyManagedObject; //is this still allocated at the stack?
}
class Foo
{
DynamiclyManagedObject * _dynamiclyManagedObject; //will be allocated in the heap.
Foo()
{
_dynamiclyManagedObject = new DynamiclyManagedObject();
}
}
有人告诉我,当我们没有在C++中使用动态内存管理,事情在堆栈中分配,我们不需要内存管理。
但是,在这个例子中。我们有一个名为DynamiclyManagedObject的动态分配对象,我在Foo构造函数中实例化这个对象。我的问题是DynamiclyManagedObject的静态管理数据成员会发生什么?
它是否仍然在堆栈上创建或..因为DynamiclyManagedObject在堆中创建,它的每个数据成员都会堆到堆中。
非常感谢您的好解释。我得到的所有答案同样很棒。另外感谢提及存储时间。快速搜索显示了如此多的答案。现在我可以更多地了解它。 – Nusakan