Die kurze Antwort ist: nein. C++ verwendet keine Speicherbereinigung wie Java oder C#. Wenn ein Objekt zerstört wird, wird es sofort zerstört. Für immer gegangen. Vereinte den Chor unsichtbar. Pining für die Fjorde, etc ...
Und dies mit anderen Worten oft über ein paar zu sagen, so dass es keine mögliche weasily Umdeutung ist ...
Der destructor als Teil des Objekt Zerstörung aufgerufen wird. Die Objektzerstörung besteht darin, den Destruktor aufzurufen und den Speicher freizugeben, der für das Objekt selbst verwendet wurde. Es ist ein einzelner Prozess, nicht zwei separate Prozesse. Während der Destruktor ausgeführt wird, ist das Objekt für den Destruktor weiterhin vorhanden, aber es existiert nach einer geborgten Zeit. Es ist eine ausgemachte Sache, dass das Objekt verdampft wird, sobald der Destruktor zurückkehrt. Sobald ein Destruktor aufgerufen wird, wird das Objekt zerstört und nichts wird sein Schicksal ändern.
Verstehen Sie dies: Der Grund, warum ein Destruktor aufgerufen wird, ist entweder: das Objekt wurde ursprünglich auf dem Haufen mit "neu" zugewiesen, und es ist jetzt "löschen" d. "löschen" bedeutet "löschen", nicht "löschen vielleicht". Also wird das Objekt gelöscht. Wenn das Objekt im Stapel zugeordnet wurde, wurde der Bereich vom Ausführungsthread verlassen, sodass alle im Bereich deklarierten Objekte zerstört werden. Der Destruktor wird technisch aufgerufen, weil das Objekt zerstört wird. Also wird das Objekt zerstört. Das Ende.
C++ erlaubt Ihnen, einen benutzerdefinierten Zuordner für Ihre Klassen zu implementieren. Wenn Ihnen danach ist, können Sie Ihre eigenen benutzerdefinierten Speicherzuweisungs- und Freigabe-Funktionen schreiben, die die von Ihnen gewünschte Funktionalität implementieren. Obwohl diese niemals für zugeordnete Stapelobjekte (d. H. Lokale Variablen) verwendet werden.
einfach den destructor leer lassen. – becko
@becko Wie würde das funktionieren? Wenn alle Typen in der Klasse POD oder RAII sind, dann ist alles ein leerer Destruktor. – NathanOliver
Das würde immer noch dazu führen, dass das Objekt gelöscht wird. –