QList und eigenes Objekt?

Du bist neu in der Welt von C++? Dann schau hier herein!
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

gast23 hat geschrieben:Zuerst wollte ich alles auf dem Heap erledigen und nur einen Pointer auf die Liste mit den Personen als Signal verschicken jedoch bin ich nicht sicher ob überhaupt jemand das Signal erhält, folglich sind die Pointer verloren... => Speicherleck....
Interessanter wärs eigentlich, wenn du mehrere Empfänger hast: Wer löscht dann? Alle? Juppidu->SegFault, und das ist mindestens genauso böse wie ein MemoryLeak.
Da diese Personen Liste periodisch erzeugt wird und die Hardware alles andere als performant ist, kann ich auch nichts zwischenspeichern...
Und warum machst du nicht einfach nen Member "QList<Person> personen", und anstatt die ganze Liste per Signal rauszuschicken emittierst du nur ein

Code: Alles auswählen

emit newPersonsAvailable();
Und einen Getter auf die Liste. Jeder der jetzt die Liste haben will, holt sie sich. Will sie keiner ist es auch gut :)
Wenn du dann noch alles mit const-Referenzen machst, hast du gar keine Kopien mehr:

Code: Alles auswählen

const QList<Person>& Klasse::getPersonen() const {
    return personen;
}

// Verwendung:
const QList& neuePersonen = klasseInstanz.getPersonen();
gast23
Beiträge: 103
Registriert: 11. August 2010 10:43

Beitrag von gast23 »

Stimmt das wäre eine sehr gute Alternative.
Vielen Dank :)
Antworten