0
说我有Class1和Class2,我想要一个Class1的浅拷贝构造函数。 Class1有一个成员变量,它是一个指向Class2实例的指针。此外,我必须能够改变Class2 ptr指向。传递一个类的指针
class Class1
{
Class2* ptr;
...
}
在源文件:
在头文件Class1::Class1()
{
ptr = new Class2();
}
......
Class2* Class1::Exchange(Class2* newClass2)
{
Class2* temp;
ptr = newClass2;
return temp;
}
......
现在说
Class1 original;
Class1 shallowCopy(original);
Class2* newClass2 = new Class2();
Class2* oldClass2;
oldClass2 = orignal.Exchange(newClass2);
delete oldClass2;
现在我想的是联想original.ptr与shallowCopy.ptr,当我实现浅拷贝构造函数,我如何确保这两个指针总是指向相同的Class2?我的意思是在上面的类中,oldClass2被删除,所以shallowCopy的ptr没有指向任何东西。如果我不删除oldClass2,则original和shallowCopy的ptrs指向不同的Class2实例。