【发布时间】:2018-04-07 17:12:22
【问题描述】:
试图理解 Stroustrup 的 TCPL(第 995 页,第 4 版)中 weak_ptr 的示例。我知道目标是在需要时获取共享指针(指向相邻的小行星)。示例代码为:
void owner()
{
//...
vector<shared_ptr<Asteroid>> va(100);
for (int i = 0; i < va.size(); ++i) {
va[i].reset(new Asteroid(weak_ptr<Asteroid>(va[neighbor]))); // why?
}
}
在标记的行中发生了很多事情。我不明白为什么使用reset,为什么构造函数接受weak_ptr?有人可以更详细地解释那条线吗?
【问题讨论】:
-
this 有帮助吗?
标签: c++ shared-ptr weak-ptr