Ano*_*ous 10 c++ pointers copy
在为包含动态分配内存的指针的类编写复制构造函数时,我有一个问题.
如何指定我希望将复制的对象的指针值复制到复制到对象的指针.显然这样的事情不起作用......
*foo = *bar.foo;
Run Code Online (Sandbox Code Playgroud)
因为,bar对象被删除(首先复制对象的目的),这只是复制到对象的foo指向同一个地方.
这里有什么解决方案?如何获取动态分配的内存的值,并将其复制到不同的地址?
Nik*_*nić 19
您分配新对象
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;
};
Run Code Online (Sandbox Code Playgroud)