没有代码只有一个普遍问题。
如果一个类内有一个独特的指针, shallow copy和deep copy的区别是如何相关的?
没有代码只有一个普遍问题。
如果一个类内有一个独特的指针, shallow copy和deep copy的区别是如何相关的?
std::shared_ptr
)。 - Konrad Rudolphunique_ptr(const unique_ptr&)
的复制构造函数,而不是unique_ptr(const T&)
。 - JHBonarius使用默认的拷贝构造函数对指针进行浅拷贝会导致悬空指针,即指向未分配或已释放内存的指针。
unique_ptr
是不可复制的。该指针只能被移动到另一个unique_ptr
中或转换为shared_ptr
。 unique_ptr
的整个目的在于仅有一个引用(指针)指向某个内存块。
这意味着,unique_ptr
不支持浅拷贝。
std::unique_ptr<T>
的复制构造函数被删除,编译器无法为包含std::unique_ptr
的class
生成默认的复制构造函数(对于原始指针执行浅拷贝)。当手动实现复制构造函数时,必须使用深拷贝来确保正确性。已弃用的std::auto_ptr
是一个负面例子。 - test failed in 1.08s