Destruktor Aufrufen geht nicht
-
Hi!
Irgendwie kann ich meinen Destruktor nicht aufrufen. Ich habe meine Klasse Excel.
Habe 2 Varianten probiert.
Excel e = Excel(); e.~Excel();Fehler: [C++ Fehler] GUI.cpp(1382): E2045 Destruktorname muß mit dem Klassennamen übereinstimmen
2:
Excel e = Excel(); delete *e;Fehler: [C++ Fehler] GUI.cpp(1382): E2093 'operator' ist im Typ 'Excel' für Argumente desselben Typs nicht implementiert*
-
Warum willst du den Destruktor überhaupt selber aufrufen? Stack-Objekte werden doch automatisch zerstört (inklusive DTor-Aufruf), wenn sie aus ihrem Gültigkeitsbereich fallen.
-
aha, d.h. wenn ich mein Programm beende wird der schon automatisch aufgerufen?
-
Ja, wird er.
Explizit aufrufen mußt du den Dtor nur, wenn du das Objekt nicht auf den regulären Wegen erstellt hast.
-
regulärer Weg?
also mit new?
-
Was du mit new angelegt hast, wird mit delete wieder freigegeben (ebenfalls inklusive implizitem Dtor-Aufruf). Explizit den Dtor aufrufen mußt du eigentlich nur, wenn du ein Objekt per Placement-new angelegt hast (und ehe du dich näher damit beschäftigst, solltest du erstmal die regulären Methoden zur Objekterzeugung verstanden haben).