【发布时间】:2018-02-04 21:56:20
【问题描述】:
还是不行,我得做一个深拷贝。假设我有一个对象A,我想将A 的浅拷贝复制到B。如果我删除A,并且A 销毁所有成员,那么B 将有悬空指针。如果A 没有销毁它的成员,那么B 的指针仍然是好的。但是,如果我删除B,那么当B 被销毁时,它的成员不会被销毁,所以我会泄漏内存。有没有办法让一个对象知道它何时拥有对内存的唯一引用并删除它?或者这是不可能的,我必须使用深拷贝。
【问题讨论】:
-
std::shared_ptr的用例参见:en.cppreference.com/w/cpp/memory/shared_ptr -
同意,看
std::shared_ptr。
标签: c++ memory-leaks delete-operator shallow-copy