2016-04-17 16 views
-1

Ich habe eine Klasse:Speichern einer Kopie des aktuellen Objekts

`class Myclass 
{ 
    public: 
    MyClass (void); 
    AddNumber (const int num); 
    CopyCurrentObject (void); 

    private: 
    int * array 
    int size; 
    int maxSize; 
    MyClass * objetcts[10]; 
} 

Wie kann ich eine Kopie meines aktuellen Objekt erstellen und es MyClass * objects[10] retten?

Mit der Kopie, die ich meine, dass ich ein temporäres Objekt mit den aktuellen Werten meines aktuellen Objekts (Elemente in Array, Größe, maxSize) erstellen möchten, und speichern Sie es auf die MyClass * objects[10]. Es ist im Grunde so etwas wie Backup.

Ich schaffe das temporäre Objekt und speichern Sie das Objekt Array wie folgt:

MyClass * temp = new MyClass (* this); MyClass objects[cnt++] = temp;

Das Problem ist mit int * array weil auf diese Weise so zu meinem Objekt Array zeigt es, wenn ich einen Wert in meinem Objekt hinzufügen , gespeicherte Objekte in MyClass * objects[10] haben es auch.

+1

Gehen Sie vorsichtiger vor. Sortieren Sie Ihre Tippfehler aus. Ich sehe drei in deinem Code direkt. –

Antwort

0

Sie sollten den Kopierkonstruktor und den Zuweisungsoperator implementieren.

Myclass(const Myclass& orig); Myclass& operator=(const Myclass& orig);

Verwandte Themen