在为包含指向动态分配内存的指针的类编写复制构造函数时,我有一个问题。
如何指定我希望将复制自对象的指针值复制到复制对象的指针。显然这样的事情是行不通的......
*foo = *bar.foo;
因为,bar 对象正在被删除(首先复制对象的目的),而这只是将复制到对象的 foo 指向同一个地方。
这里的解决方案是什么?如何获取动态分配内存的值,并将其复制到不同的地址?
最佳答案
分配新对象
class Foo
{
Foo(const Foo& other)
{
// deep copy
p = new int(*other.p);
// shallow copy (they both point to same object)
p = other.p;
}
private:
int* p;
};
关于c++ - 编写深拷贝 - 复制指针值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1936942/