我有一个类 A
,它拥有一个类型为 std::unique_ptr
的字段:
class A
{
public:
std::unique_ptr pointer;
// class body
};
在我的代码中,我使用了几个指向相同对象的std::shared_ptr
。现在我想要实现的是将所有权转移到这个类中的std::unique_ptr
,以便如果所有shared_ptr
都被销毁,我的对象将会一直存在,只要这个unique_ptr
还活着。
我的问题是 - 是否可能从std::shared_ptr
转移所有权到std::unique_ptr
,如果可以,应该如何做?
shared_ptr
存活的情况下才能进行;如果是这种情况,那么你仍然可以将shared_ptr
作为A
的成员使用,并 假装 它是unique_ptr
。 - Nawazshared_ptr
没有提供release
方法是有原因的。 - user1773602std::weak_ptr
的指针。如果是这样,请确保使用一个std::shared_ptr
,而其他所有指针都是std::weak_ptr
。 - Nawaz