AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Destructor unter C

Ein Thema von MrKnogge · begonnen am 10. Mai 2004 · letzter Beitrag vom 10. Mai 2004
Antwort Antwort
MrKnogge

Registriert seit: 9. Jun 2003
Ort: Pforzheim
2.458 Beiträge
 
Delphi 2007 Professional
 
#1

Destructor unter C

  Alt 10. Mai 2004, 12:29
Mahlzeit !

Wir nehmen derzeit Construktoren und Destruktoren unter C durch, nun meint weis mein Lhere nicht genau, er meint der Inhalt einer Destruktors könnte beispielsweise folgendermasen aussehen:
Code:
delete this
Wobei ich dachte, dass man mit delete den Destruktor aufruft, was ja zu einem Fehler führen würde.

Kann man den Speicher einer Klasse mit einem Destruktor freigeben, oder geht dies nur mit delete "Klassenname" ?
Christian Bootz
Einstein ist tot, Newton ist tot,
und mir ist auch schon ganz schlecht...
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#2

Re: Destructor unter C

  Alt 10. Mai 2004, 12:36
Moin!

delete ruft automatisch den destructor auf in C++, wenn es eine Instanz ist. Der Destruktor kann in C++ auch nicht direkt aufgerufen werden. Die Objekte werden immer mit delete gelöscht und freigegeben (was dann den Destructor des Objekts ausruft). Es ist vom Prinzip her das gleiche Prinzip wie beim Constructor und new.

Code:
delete this
Dieses Konstrukt ist auch sehr interessant, aber so zum Absturz verdammt. Du rufst mit delete den Destruktor zu this auf - wobei this die aktuelle Instanz ist, von der heraus du ja das delete aufrufst. Soweit gibt er dann die Klasse frei durch den Destruktor, Problem dabei ist folgender: Wenn er mit dem Destructor fertig ist, dann springt er wieder zurück zum Aufrufer um dort dann fortzufahren, und das wäre dann die ebend zerstörte this Instanz, somit springt er in einen nicht mehr zugeordneten Speicherbereich und dann knallts...

MfG
Muetze1
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz