Heim >Backend-Entwicklung >C++ >Wo werden Verweise auf Objekte gespeichert, wenn sie im Stapel oder im Heap erstellt werden?
Objekterstellung auf dem Stapel oder Heap:
Es stellt sich die Frage: Wenn ein Objekt auf dem Stapel oder auf dem Heap erstellt wird, wo sind Referenzen? zu den tatsächlich gespeicherten Objekten?
In C wird die Objektspeicherung durch ihren Kontext, nämlich ihre Speicherung, bestimmt Dauer:
Objekt o erstellt ein Objekt mit:
Object* o erstellt einen Zeiger mit automatischer Funktion Speicher.
Zeiger werden wie jedes andere Objekt auf dem Stapel zugewiesen. Ihre Speicherdauer wird durch ihren Kontext bestimmt, nicht durch den Initialisierungsausdruck.
Zum Beispiel im folgenden Codefragment:
struct Foo { Object o; }; Foo foo, f; Foo* p = new Foo; Foo* pf = &f;
Zusammenfassend lässt sich sagen, dass der Speicherort eines Objekts ausschließlich von seinem Kontext abhängt, während Zeiger immer auf dem Stapel zugeordnet sind, aber auf Objekte unterschiedlichen Speichers verweisen können Dauer.
Das obige ist der detaillierte Inhalt vonWo werden Verweise auf Objekte gespeichert, wenn sie im Stapel oder im Heap erstellt werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!