On Thursday 06 December 2001 10:21, Torsten Werner wrote:
Wieso sollte man Objekte im Konstruktor loeschen wollen? Ausserdem halte ich deine Aussage zur Garbage Collection in dieser Form fuer Quatsch - wie soll das denn funktionieren? Was ist, wenn das Objekt selbst gar nicht dynamisch alloziert wurde?
Ts, da verwechselt man Kon mit De (es war früh am Morgen...), und schon wird ein richtig schöner Flamewar draus :)
Bei Objekten in Qt unterscheidet man zwischen implizierter und expliziter Teilung eines Objektes unter den anderen. Also wenn mein Widget A jetzt ein Widget B herstellt, und A wird gelöscht, tja dann gibt es A auch nicht mehr. Das läßt sich ganz einfach dadurch realisieren, daß jedes Kindobjekt sich beim Parent registriert, und im Destruktor (ha, jetzt stimmts) sich wieder aus der Registriertabelle löschen läßt. Wenn jetzt A gelöscht wird und B noch drin steht, wird B mit "entsorgt".
Bei mir unter: file:/usr/local/qt/doc/html/shclass.html Oder auch: "The parent receives object ownership, i.e. it will automatically delete its children in its destructor." (QObject)
Sicher kein sehr toller Ansatz, aber sowohl für Qt als auch Gtk+ sind die Bindings "richtiger" objektorientierter Sprachen wie Ruby noch nicht so weit. Ich habe mal versucht ein Ruby-Spiel zu erstellen mit Qt, irgendwie kamen die Events nicht richtig an :( (Mal abgesehen daß das nur ein API-Wrapper ist, aber eine native Implementierung würde mehr Manpower in Anspruch nehmen als im Moment da ist... das ist mit den Python-Bindings etc. auch nicht anders...)
Josef Spillner