共享指针:指向指针的指针

时间:2010-09-01 19:36:42

标签: c++ shared-ptr smart-pointers

公共指针允许您创建指向指针的指针:

void foo(Object **o) {}

int main()
{
   Object * o = new Object();
   foo(&o);
}

shared_ptr是否有类似的结构?

void foo(std::shared_ptr <Object> *o) {}

int main()
{
   std::shared_ptr <Object>  o(new Object());
   foo(&o);
}

1 个答案:

答案 0 :(得分:2)

如果不对此进行测试,我很确定你会想要:

shared_ptr<shared_ptr<T> > o(new shared_ptr<T>(new T()));

编辑:在模板定义中的第一个'('和修复的非标准使用&gt;&gt;之后忘记了“new”。(至少在C ++ 0x之前不是标准的)