JeFi Geschrieben 24. Oktober 2005 Geschrieben 24. Oktober 2005 Hallo ich habe folgende Frage: wenn ich ein Objekt von meiner selbst geschriebenen Klasse mit new erzeuge(Diese Klassen enthält auch Zeiger auf weiter Objekte) muss ich dann die einzelnen Objekte mit delete löschen oder reicht es wenn ich das Obejekt lösche, welches die anderen Objekte beinhaltet!?! oder anders gefragt bleiben die enthaltenen Objekte auf jedem Fall am Leben wenn ich sie nicht explizit mit delete lösche oder gibts da Unterschiede zwischen meinen "eigenen Objekten" und den standard vorhanden? vielen Dank im voraus Zitieren
Guybrush Threepwood Geschrieben 24. Oktober 2005 Geschrieben 24. Oktober 2005 Alles was du mit new reserviert hast musst du mit delete auch wieder freigeben. Gleiches gilt auch für malloc und free. Zitieren
JeFi Geschrieben 25. Oktober 2005 Autor Geschrieben 25. Oktober 2005 aha also auch Membervariablen! bin nur irritiert da ich zur Zeit mit QT(GUI Bibiolothek) arbeite und da stand im Buch das die QT-Memberobjekte automatisch gelöscht werden sobald das "Hauptobjekt" deleted wird! Zitieren
Klotzkopp Geschrieben 25. Oktober 2005 Geschrieben 25. Oktober 2005 aha also auch Membervariablen!Nur, wenn du die auch jeweils mit new erstellst. bin nur irritiert da ich zur Zeit mit QT(GUI Bibiolothek) arbeite und da stand im Buch das die QT-Memberobjekte automatisch gelöscht werden sobald das "Hauptobjekt" deleted wird!Was ist ein "Hauptobjekt"? Wenn du die mit new erzeugten Member irgendwie an das "Hauptobjekt" bindest, wirst du vermutlich nicht delete aufrufen müssen. Zitieren
Goos Geschrieben 25. Oktober 2005 Geschrieben 25. Oktober 2005 QT(GUI Bibiolothek) arbeite und da stand im Buch das die QT-Memberobjekte automatisch gelöscht werden sobald das "Hauptobjekt" deleted wird! QT organsiert seine Strukturen von QObject Objekten in Object Trees und kann dir deshalb da auch beim loeschen helfen. Du brauchst also beispielsweise die per new erzeugen Buttons eines Dialoges nicht einzeln zu loeschen. Das gilt aber NUR fuer Qt und auch dort nur fuer von QObject abgeleitete Klassen (also quasi alles was sich anzeigen laesst). Goos Zitieren
Guybrush Threepwood Geschrieben 25. Oktober 2005 Geschrieben 25. Oktober 2005 Wie stellt QT das denn fest? Zitieren
Goos Geschrieben 25. Oktober 2005 Geschrieben 25. Oktober 2005 Hi Guybrush, wie stellt QT was genau bitte fest? Goos Zitieren
Guybrush Threepwood Geschrieben 25. Oktober 2005 Geschrieben 25. Oktober 2005 ob du von irgendweiner seiner Klassen eine Instanz per new angelgt hast, so dass es diese wieder freigeben muss. Zitieren
Goos Geschrieben 25. Oktober 2005 Geschrieben 25. Oktober 2005 Du erwartest jetzt aber keine Antwort in zwei Zeilen? Was gemacht wird steht hier http://doc.trolltech.com/4.0/object.html unter "hierarchical and queryable object trees that organize object ownership in a natural way" Das genaue WIE ist in der Regel ja nicht so interessant, es funktioniert und man verwendets ...oder willsts nachbauen? Goos Zitieren
Guybrush Threepwood Geschrieben 25. Oktober 2005 Geschrieben 25. Oktober 2005 Nö, die Frage hat sich mir nur gerade gestellt und es kann ja nie schaden zu wissen wie etwas geht Zitieren
Goos Geschrieben 25. Oktober 2005 Geschrieben 25. Oktober 2005 Da hast wohl recht Fuer genaue Implementationen musst aber wohl in die Source schaun. Goos Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.