C++ 是否有一个智能指针在其目标在C+中被销毁时自动为空+;

C++ 是否有一个智能指针在其目标在C+中被销毁时自动为空+;,c++,pointers,smart-pointers,qpointer,C++,Pointers,Smart Pointers,Qpointer,我找到了。还有其他的吗?“boost::weak\u ptr”与“boost::shared\u ptr”(也可在tr1中使用)如果您同时使用shared\u ptr,那么weak\u ptr具有一些很好的特性,可以安全使用。您对由共享的\u ptr生命周期管理的实例保留弱\u ptr引用。当需要使用基础实例时,请使用shared_ptr类的构造函数或lock方法将其转换为shared_ptr实例。如果删除了基础实例,操作将失败。使用线程安全,方式与共享\u ptr类相同: shared_ptr

我找到了。还有其他的吗?

“boost::weak\u ptr”与“boost::shared\u ptr”(也可在tr1中使用)

如果您同时使用
shared\u ptr
,那么
weak\u ptr
具有一些很好的特性,可以安全使用。您对由
共享的\u ptr
生命周期管理的实例保留
弱\u ptr
引用。当需要使用基础实例时,请使用
shared_ptr
类的构造函数或
lock
方法将其转换为
shared_ptr
实例。如果删除了基础实例,操作将失败。使用线程安全,方式与
共享\u ptr
类相同:

shared_ptr<int> p(new int(5));
weak_ptr<int> q(p);

// some time later

if(shared_ptr<int> r = q.lock())
{
    // use *r
}
shared_ptr p(新int(5));
弱ptr q(p);
//一段时间以后
if(共享的\u ptr r=q.lock())
{
//使用*r
}

谢谢。我不知道弱者有这种行为。我想知道我为不必要的引用计数行为付出了多少。无论如何,我想你的答案是第一个。标记为最佳。