Nochmal zu Destruktor
Joachim
- perl
Hi,
ich habe da noch etwas eigenartiges zu Destruktoren gefunden:
"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?
Vielen Dank,
Joachim
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
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.
Ist deshalb folgendes richtig:
Vielen Dank für deine Mühe
Joachim
Hallo,
lesenswert: http://learn.to/quote
- 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?
Nein, der Destruktor ist keine Pflicht -- er ist optional.
Ist deshalb folgendes richtig:
- Perl zerstört die Instanzen einer Klasse selbst. Dabei wird
(wahrscheinlich) die DESTROY-Funktion aufgerufen.
Lass das 'wahrscheinlich' weg, sie *werden* aufgerufen -- wir sind
hier nicht bei Java ;-))
- In dieser kann man dann besondere Aktivitäten einbauen, die
beim Zerstören des Objekts geschehen sollen (zum Beispiel ein
File schließen.).
Richtig.
Gruesse,
CK