-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On Tuesday 26 March 2002 14:00, Torsten Werner wrote:
kürzlich habe ich mir mal ins Bein geschossen, weil die qt-Bibliothek standardmäßig alle Verweise auf andere Objekte innerhalb eines QObject automatisch im Destruktor löscht (mittels delete). Kann man dieses Verhalten auf einfache Art ändern? Die mir vorliegende Dokumentation schweigt sich darüber aus und vermutet noch nicht einmal, dass dieses Standardverhalten eigentlich völlig krank ist.
Meine Programme funktionieren ganz gut mit diesem Verhalten. Eigentlich funktionieren sie nur _weil_ es da ist. Du willst nicht wirklich einige dutzend Objekte selbst aufraeumen von denen die Haelfte automagisch erzeugt wurde. Wenn Du nicht willst, dass ein QObject die Verantwortung fuer ein anderes QObject uebernimmt, dann sag' ihm nicht, dass es da ist: lege einen Verweis an, aber mach es nicht zum parent. Ansonsten ist der Normalfall bei Qt die Kopie (QString ist z.B. so optimiert, dass eine Kopie kaum Speicher braucht) oder eine Signal-Slot-Verbindung (die werden automatisch aufgeraeumt, aber die Objekte bleiben bestehen).
Sehr viele Probleme lassen sich dadurch loesen, dass man eine Signal-Slot-Verbindung aufbaut und das signalisierende Objekt seinen this-Pointer mitliefert.
Ansonsten versuch es mal mit Sprachen, die einen Garbage Collector haben: SmallTalk, Ruby, Java, etc. - da entfallen diese Probleme.
Konrad
- -- Killing is stupid; useless! -- McCoy, "A Private Little War", stardate 4211.8