Das Problem sieht in etwa folgendermassen aus:
Ein öffentlicher Member einer Klasse ist ein Array (einer anderen selbsterstellten Klasse), von dem ich im vorherein aber nicht weiss wie gross es sein muss. Die Grösse sollte beim initialisieren der Klasse festgelegt werden. Ich habe damit im Moment noch einige Probleme, irgendwie habe ich wohl etwas entscheidendes noch nicht ganz begriffen.
Deklariert wird das Array im Header von MyOtherClass folgendermassen, unter public:
MyClass *Trow;
In MyOtherClass::Init wird sie dann wie folgt angepasst:
MyClass *Trow = new MyClass[X];
wobei X die erst jetzt bekannte grösse des Arrays ist.
Die einzelnen instanzen werden dann gefüllt, und soweit funktioniert die Sache auch. Ich erhalte keine Synthaxfehler, und wenn ich die initialisierung mit breakpoints mitverfolge läuft auch alles wie geschmiert. Das Array wird erstellt und gefüllt. Nur: sobald die Funktion MyOtherClass::Init verlassen wird, ist das ganze Array wieder weg!
Es kommt mir fast so vor als ob der Compiler das veränderte Array als Lokal betrachtet und es hinterher wieder wegschmeisst, obwohl es am Ende eigentlich ein öffentlicher Member meiner Klasse sein sollte.
Kann mir jemand auf die Sprünge helfen wie ich das Problem lösen soll?
Ein öffentlicher Member einer Klasse ist ein Array (einer anderen selbsterstellten Klasse), von dem ich im vorherein aber nicht weiss wie gross es sein muss. Die Grösse sollte beim initialisieren der Klasse festgelegt werden. Ich habe damit im Moment noch einige Probleme, irgendwie habe ich wohl etwas entscheidendes noch nicht ganz begriffen.
Deklariert wird das Array im Header von MyOtherClass folgendermassen, unter public:
MyClass *Trow;
In MyOtherClass::Init wird sie dann wie folgt angepasst:
MyClass *Trow = new MyClass[X];
wobei X die erst jetzt bekannte grösse des Arrays ist.
Die einzelnen instanzen werden dann gefüllt, und soweit funktioniert die Sache auch. Ich erhalte keine Synthaxfehler, und wenn ich die initialisierung mit breakpoints mitverfolge läuft auch alles wie geschmiert. Das Array wird erstellt und gefüllt. Nur: sobald die Funktion MyOtherClass::Init verlassen wird, ist das ganze Array wieder weg!
Es kommt mir fast so vor als ob der Compiler das veränderte Array als Lokal betrachtet und es hinterher wieder wegschmeisst, obwohl es am Ende eigentlich ein öffentlicher Member meiner Klasse sein sollte.
Kann mir jemand auf die Sprünge helfen wie ich das Problem lösen soll?