Lassen Sie uns sagen, dass ich den folgenden Code haben:Wird exit() oder eine Ausnahme verhindern, dass ein End-of-Scope-Destruktor aufgerufen wird?
struct mytype
{
~mytype() { /* do something like call Mix_CloseAudio etc */ }
};
int main()
{
mytype instant;
init_stuff();
start();
return 0;
}
Ist das destructor auch genannt werden garantiert, wenn exit() von irgendwo innen start() wird verwendet?
Ausnahmen werden den Destruktor aufrufen, 'exit()' wird nicht. – falstro
Nicht genau dieser Fall, aber ich habe Destruktoren für * statische Objekte * auf Linux mit GCC aufgerufen. –