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

时间:2009-05-26 07:46:18

标签: c++ pointers smart-pointers qpointer

我找到了QPointer。还有其他人吗?

2 个答案:

答案 0 :(得分:8)

Boost - 如果您还使用weak_ptrshared_ptr有一些很好的功能,可以安全使用。您对weak_ptr生命周期管理的实例保留shared_ptr引用。当您需要使用基础实例时,请使用shared_ptr类的构造函数或shared_ptr方法将其转换为lock实例。如果删除了基础实例,则操作将失败。使用的线程安全与shared_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
}

答案 1 :(得分:6)

“boost :: weak_ptr”适用于“boost :: shared_ptr”(也可在tr1中使用)