我有一个班级:
`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]
中的存储对象也会有它。
答案 0 :(得分:0)
您应该实现复制构造函数和赋值运算符。
Myclass(const Myclass& orig);
Myclass& operator=(const Myclass& orig);