content verlieren



  • ich hab ein problem:

    ich habe ein objekt, das in sich ein objekt besitzt, dass in sich einen pointer auf ein array besitzt

    also genauer gesagt. objekt model besitzt ein objekt matrix, dass in sich ein array[16] hat (für die matrix elemente)

    ich erzeuge in einer initMethode ein model-objekt (d.h. model *tmp = new model() ) und speicher es in ein vector<model> objekt. mit der push_back methode des vectors (d.h. objectset.push_back(*model) )

    in diesem vector objekt verliert aber mein objekt seinen matrix-inhalt (ich glaub es zeigt danach auf einen null-pointer) also der pointer auf das matrix-objekt steht noch, aber die matrix dort zeigt auf eine leere stelle oder so. (sollte ein float* sein)

    ich denke mir, dass ich eben den inhalt verliere, weil er nur in dieser methode gültig ist, aber wie löse ich das problem.



  • Hast Du evtl so ein Objekt kopiert, aber keinen Kopierkonstruktor gebaut?



  • Du scheinst recht viel mit Pointern zu arbeiten, es kommt der Verdacht auf dass du es damit etwas übertreibst - du musst nicht jedes einzelne Objekt mit new erzeugen, wenn das nicht unbedingt nötig ist.



  • wann ist es notwendig new zu machen und wann nicht?

    wie löscht man ein objekt dass mit new gemacht wurde und wie eins das ohne new gemacht wird. welches davon wird automatisch gelöscht und wann?

    was ist ein kopierkonstruktor? ich weiß nicht ob ich kopier, ich wende vector.push_back() an. kopiert das, oder speichert das nur einen pointer?



  • Tip: Bescaeftige dich mit den Grundlagen. Liess eins zwei Buecher, z.B. Die C++-Programmiersprache. (also kurz RTFM).


Anmelden zum Antworten