Joachim: Nochmal zu Destruktor

Beitrag lesen

Hallo,

Warum hast du die Frage  nicht hierzu gepostet?:
   http://forum.de.selfhtml.org/?m=76159&t=13728

"In Perl existieren im Gegensatz zu anderen objektorientierten Pro-
grammiersprachen keine Destruktor-Funktionen zum Löschen von Objek-
ten. Ein Objekt wird automatisch gelöscht, wenn keine Referenz mehr
auf dieses Objekt existiert. Der Programmierer muß sich also auch
in diesem Fall keine Gedanken über die Speicherverwaltung für
Objekte machen."

gefunden in:
http://www.krienke.org/books/perlbu/download/exampkap10.pdf

Was soll ich davon halten?

Eine Verschwemmung der Begrifflichkeiten. Der Autor des Textes
meinte, dass man in Perl Objekte nicht explizit freigeben kann/muss.
Das dass uU nicht so ganz stimmt, sollte sich von selbst verstehen.

Destruktoren im Sinne von Funktionen, die aufgerufen werden, wenn das
Objekt zerstoert wird, gibt es natuerlich schon.

Gruesse,
CK

Hi, nochmal ich ...,
bevor ich jetzt verwirrt werde von den vielen Informationen, die
ich habe, möchte ich nochmal sicher gehen.

  • Ich habe schon einige Klassen gesehen (auch bei SELFHATML), die keine DESTROY-Funktion haben. Haben die etwas vergessen, da du (CK) mir geschrieben hast, ich müsse die DESTROY-Funktion definieren?

Ist deshalb folgendes richtig:

  • Perl zerstört die Instanzen einer Klasse selbst. Dabei wird (wahrscheinlich) die DESTROY-Funktion aufgerufen.
  • In dieser kann man dann besondere Aktivitäten einbauen, die beim Zerstören des Objekts geschehen sollen (zum Beispiel ein File schließen.).

Vielen Dank für deine Mühe
Joachim