[c++] Exception bei Memberinitialisierung im Konstruktor

haloo

Cadet 1st Year
Registriert
Feb. 2009
Beiträge
12
Hi,
ich hab eine Klasse mit mehreren Memberobjekten, die Ressourcen besitzen (und beim jeweiligen Destruktor freigegeben werden).
Code:
class MyClass {
Resource a;
Resource b;
}

Wenn die Ressource für das Objekt nicht erworben werden kann, wirft der Konstruktor eine Exception.
Was passiert für meine Klasse MyClass, wenn a erfolgreich initialisiert wurde und beim initialisieren von b eine Exception auftritt, mit den bereits erfolgreich erzeugten Memberobjekten? MyClass wirft die Excpetion weiter, sodass kein Objekt der Klasse MyClass erzeugt wird (also kann später kein Destruktor aufgerufen werden).

mfg
 
von a wird der Destruktor aufgerufen bevor die exception weitergeleitet wird.
Kannst leicht sehen indem der Konstruktor / Destruktor von MyClass / Resource messages an z.B. std::cout ausgeben.
 
danke für deine Antwort.
Ich hatte es auch schon mit Debug-Outputs probiert; wollte nur sichergehen was der Standard sagt
 
Zurück
Oben