Einzelnen Beitrag anzeigen

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