存储当前对象的副本

时间:2016-04-17 08:33:23

标签: c++ copy-constructor deep-copy

我有一个班级:

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

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

如何创建当前对象的副本并将其保存到MyClass * objects[10]

使用副本我的意思是我想创建一个临时对象,其中包含当前对象的当前值(数组中的元素,大小,maxSize),并将其存储到MyClass * objects[10]。这基本上就像是备份。

我创建临时对象并将对象存储到数组中,如下所示:

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

问题在于int * array,因为这样它指向我的对象数组,所以每当我在对象中添加一个值时,MyClass * objects[10]中的存储对象也会有它。

1 个答案:

答案 0 :(得分:0)

您应该实现复制构造函数和赋值运算符。

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