PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : C++ und komplizierte Struktur wird falsch initalisiert


Dee
2003-12-01, 23:07:39
Meine Thread-Titel sind wie üblich der Hit... ;)

Also ich definiere mit in C++ über Klassen ein komplizierteres Array der Art

class QString {
char *string;
}

class structur {
QString text;
int type;
};

class array {
structur field[COLS];
};

Im Hauptprogramm:

array row[4*lines];

kann man dann über

row[j].field[k].text="";
row[j].field[k].type=0;

auf die einzelnen Felder zugreifen.

Mein Prob: Ich weise in einer Do While-Schleife den Text-Feldern Werte zu.
Nach Beendingung der Schleife steht aber in jedem Feld der gleiche Text und zwar immer der, den ich zuletzt dem letzten Feld zugewiesen habe.

Hat jemand ne Ahnung, wo der Fehler liegen könnte?

Meine Annahme: Ich übergebe irgendwo nur Pointer anstatt den kompletten String... Aber ich find den Fehler einfach nicht!

Gruß, Dee

Dee
2003-12-01, 23:15:30
Spitze.... Immer wenn ich hier ein Prob poste, ergibt sich die Lösung wie von selbst...

Woran es lag:

Die Zuweisung in der Schleife geschah so, daß quasi QString=Qstring zugewiesen wurde. Dummerweise hatte ich keinen Copy Konstruktor angelegt für den Fall, so daß der Standard benutzt wurde, der aber grundsätzlich nie Objekte kopiert, sondern nur die Zeiger... Somit zeigten alle Felder auf ein und die selbe Variable!

Nun ja, ist vielleicht ein lehrreiches Beispiel, wie man es nicht machen sollte... ;)

Gruß, Dee