この例を考えてみましょう。割り当てられたオブジェクトのヒープには、メンバーがスタックに割り当てられますか?
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の静的に管理されたデータメンバーはどうなりますか?
DynamicmanManagedObjectがヒープで作成されたため、スタックのすべてのデータメンバーがヒープになるため、スタック上に作成されますか。
ありがとうございました。私が下にあるすべての答えは同じように素晴らしいです。ストレージの持続時間について言及していただきありがとうございます。クイック検索は非常に多くの回答を示しました。今私はそれについてもっと調べることができます。 – Nusakan