Kirsche
01-10-2005, 11:27
Hallo Leute,
damit man keine Speicherlecks produziert, muss man ja - allgemein gesagt - alles mit "delete" löschen, was man mit "new" angelegt hat. Dazu habe ich ein paar Fragen:
1. Bei Qt gilt doch, dass man nichts selber löschen muss, was einen "parent" hat, oder habe ich das falsch verstanden?
2. Wenn ich eine Liste löschen möchte ( die ja kein "parent" hat), reicht dann "setAutoDelete" zusammen mit "clear" im Destruktor der Klasse, in der sich die Liste befindet? Oder was muss ich da machen? Meine Liste ist ja kein Zeiger, aber die Elemente darin.
3. Wie lösche ich Listen innerhalb von Listen? Ich produziere immer einen Absturz, wenn ich "autodelete" und "clear" benutze.
4. Wenn ich Elemente irgendwo erzeuge und später in eine Liste stecke, wo muss ich diese dann löschen? Es könnte ja sein, dass ich die Liste irgendwann nicht mehr brauche, die Elemente aber schon.
5. Wie löscht man Arrays, die man mit char* c = new char[length] erzeugt hat? Einfach mit "delete c" ?
6. Muss man connections, die nicht mehr benutzt werden, selber löschen, also ein disconnect machen?
7. Muss ich sonst noch irgenwas beachten?
Vielen Dank
damit man keine Speicherlecks produziert, muss man ja - allgemein gesagt - alles mit "delete" löschen, was man mit "new" angelegt hat. Dazu habe ich ein paar Fragen:
1. Bei Qt gilt doch, dass man nichts selber löschen muss, was einen "parent" hat, oder habe ich das falsch verstanden?
2. Wenn ich eine Liste löschen möchte ( die ja kein "parent" hat), reicht dann "setAutoDelete" zusammen mit "clear" im Destruktor der Klasse, in der sich die Liste befindet? Oder was muss ich da machen? Meine Liste ist ja kein Zeiger, aber die Elemente darin.
3. Wie lösche ich Listen innerhalb von Listen? Ich produziere immer einen Absturz, wenn ich "autodelete" und "clear" benutze.
4. Wenn ich Elemente irgendwo erzeuge und später in eine Liste stecke, wo muss ich diese dann löschen? Es könnte ja sein, dass ich die Liste irgendwann nicht mehr brauche, die Elemente aber schon.
5. Wie löscht man Arrays, die man mit char* c = new char[length] erzeugt hat? Einfach mit "delete c" ?
6. Muss man connections, die nicht mehr benutzt werden, selber löschen, also ein disconnect machen?
7. Muss ich sonst noch irgenwas beachten?
Vielen Dank