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實例。