Heim > Backend-Entwicklung > C++ > Wann werden temporäre C-Objekte zerstört?

Wann werden temporäre C-Objekte zerstört?

Mary-Kate Olsen
Freigeben: 2024-12-16 01:53:09
Original
927 Leute haben es durchsucht

When Are C   Temporary Objects Destroyed?

Garantierte Lebensdauer temporärer Objekte in C

In C wird eine temporäre Variable erstellt, wenn ein Ausdruck einen Wert ergibt, der nicht gespeichert wird in einer benannten Variablen. Im angegebenen Code wird innerhalb des Funktionsaufrufs GetString() ein temporäres StringBuffer-Objekt erstellt:

StringBuffer(mystring).Size(MAXLEN)
Nach dem Login kopieren

Es stellt sich die Frage, wann der Destruktor für dieses temporäre Objekt aufgerufen wird:

Lebensdauer temporärer Objekte:

C garantiert, dass die Lebensdauer eines temporären Objekts bis zum Ende des vollständigen Ausdrucks in reicht wodurch es entsteht. Ein vollständiger Ausdruck ist der äußerste Ausdruck, der nicht Teil eines anderen Ausdrucks ist. In diesem Fall ist der vollständige Ausdruck der gesamte Funktionsaufruf GetString():

GetString(StringBuffer(mystring).Size(MAXLEN), MAXLEN);
Nach dem Login kopieren

Zerstörungszeitpunkt:

Daher der Destruktor für das temporäre StringBuffer-Objekt wird nach aufgerufen, nachdem die Funktion GetString() zurückgegeben und der Wert ausgewertet wurde. Dieses Verhalten wird durch den C-Standard in 12.2 „Temporäre Objekte“ garantiert.

Bedeutung für Ausdrucksvorlagen:

Diese lebenslange Garantie ist entscheidend für Ausdrucksvorlagen, die halten können Verweise auf temporäre Objekte innerhalb von Ausdrücken. Beispielsweise die folgende Ausdrucksvorlage:

e = a + b * c / d
Nach dem Login kopieren

Kann Verweise auf die von jedem Operanden erstellten temporären Objekte beibehalten, da die Lebensdauer jedes temporären Objekts bis zum Ende des gesamten Ausdrucks reicht.

Das obige ist der detaillierte Inhalt vonWann werden temporäre C-Objekte zerstört?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage