我們來考慮一下這個例子。堆分配的對象是否將其成員分配到堆棧上?
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