Zerstoerungsreihenfolge beim Verlassen eines lokalen Scopes
-
#include <iostream> using namespace std; struct C { C(int i) : x(i) { } ~C() { cout << x << endl; } int x; }; int main() { C a(1); C b(2); C c(3); }
Kann ich mich darauf verlassen, das dieser Code immer 3, 2, 1 ausgibt?
Und aehnlich: In welcher Reihenfolge werden Exemplarvariablen zerstoert?
Danke im Voraus!
-Gunnar
-
du legst die objekte auf den stack... damit ist die regel:
last in first out (lifo)
gültig.somit: das letze auf dem stack als erstes wieder runter.. "tellerspeicher"
(anders mit new auf den freispeicher)
-
keller - nicht teller
-
es ist ein tellerhaufen, und zieh ja nicht den untersten raus
klar ist es auch ein keller... aber das ist mir wurscht..
schon die anführungsstriche gesehen??