【发布时间】:2020-07-17 18:08:52
【问题描述】:
说,我有一个shared_ptr<A> ptrFirst,它已初始化并指向内存中的某个对象。现在,我像这样定义一个新的shared_ptr:
shared_ptr<A> ptrSecond = make_shared<A>(ptrFirst.get());
我知道我可以使用简单的分配来防止出现任何问题。但是我想知道如果我这样定义ptrSecond,我会为同一个对象有两个不同的控制块吗?这还很糟糕吗?
【问题讨论】:
-
在析构函数中设置断点。 TLDR:这很糟糕。
-
这里还有另一个案例,实际的minimal reproducible example 会有很大帮助,因为它会发现其他人指出的问题。反过来,这将导致要么不需要问这个问题,要么问一个更好的问题。
标签: c++ smart-pointers