Temporäre Objektzerstörung in C
In C werden temporäre Objekte bei Bedarf während der Auswertung von Ausdrücken erstellt. Diese Objekte existieren nur innerhalb des Gültigkeitsbereichs des Ausdrucks und werden nach Abschluss automatisch zerstört.
Betrachten Sie das folgende Beispiel mit drei Codezeilen:
Foo foo{"three"}; Foo{"one"}; std::cout << "two" << '\n';
Der Code gibt „eins“, „ zwei“ und „drei“ in dieser Reihenfolge. Dieses Verhalten ergibt sich aus den folgenden Regeln für die Zerstörung temporärer Objekte:
Zerstörung am Ende der Ausdrucksauswertung
Temporäre Objekte werden nach Abschluss der Auswertung des vollständigen Ausdrucks zerstört sie wurden geschaffen. In diesem Beispiel werden die temporären Objekte für „eins“ und „drei“ nach den jeweiligen Zeilen, in denen sie sich befinden, zerstört.
Ausnahmen von der Regel
Bei temporärem Objekt Die Zerstörung folgt normalerweise dieser Regel, es gibt bestimmte Ausnahmen, wie in [class.temporary] p4-p7 beschrieben:
Im bereitgestellten Beispiel keine dieser Ausnahmen gelten, sodass die temporären Objekte nach ihren jeweiligen Zeilen zerstört werden, was zur angegebenen Ausgabe führt.
Das obige ist der detaillierte Inhalt vonWann werden temporäre Objekte in C zerstört?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!