【发布时间】:2018-09-09 16:07:45
【问题描述】:
让我们考虑这个例子。
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是在堆中创建的,它的每个数据成员最终都进入了堆中。
【问题讨论】:
标签: c++