Seite 1 von 1

2 * QList zusammenführen

Verfasst: 18. September 2008 11:30
von gentlesea
Hallo Leute,

ich habe eine vermeintlich einfache Aufgabe, die sich als unlösbar für mich entpuppt. Ich muss die Elemente 2er QList<T> in eine QList<T> speichern.

Code: Alles auswählen

		QList<eigeneKlasse> existierendeListe = listeMitListen[0];
		QList<eigeneKlasse> neueListe;
		neueListe.append(eigeneKlasse());
		QList<eigeneKlasse> ergebnisListe = existierendeListe + neueListe;
Dazu habe ich mir eine neue Liste angelegt, die ich mit Objekten fülle. Nur beim Zusammenfügen der Listen gibt es stets einen Fehler. Ich habe versucht, die Listen mit + zu verbinden, mit += und sogar die Objekte einzeln zu kopieren. Ich habe bewußt nicht die .at()-Funktion genommen, da diese konstante Daten zurückliefert.

"HEAP[meine.exe]: HEAP: Free Heap block 8061b28 modified at 8061b60 after it was freed"

Hat jemand eine Idee?

Verfasst: 18. September 2008 11:42
von Christian81
Eine Liste mit Klassen? Nimm besser eine Liste mit Zeigern auf Klassen.
Wenn Du unbedingt eine Liste mit Klassen willst dann passe auf das die Klassen einen korrekten Copy-ctor hat - ist wohl bei Dir nicht der Fall.

Sind das nicht schon Zeiger?

Verfasst: 18. September 2008 15:14
von gentlesea
Ich dachte bisher, dass QList automatisch Zeiger verwendet. Diese Vermutung fußt auf der folgenden Beschreibung:

"Internally, QList<T> is represented as an array of pointers to items. (Exceptionally, if T is itself a pointer type or a basic type that is no larger than a pointer, or if T is one of Qt's shared classes, then QList<T> stores the items directly in the pointer array.)"

Sonst allerdings ein guter Ansatz, den ich weiter verfolgen werden. Vielen Dank.

Verfasst: 18. September 2008 15:25
von Christian81
Es ist ne QList<>, keine QPtrList<> - wie es intern aufgebaut ist tut da rein gar nichts zur Sache :)