【发布时间】:2010-08-26 16:31:28
【问题描述】:
我目前的情况如下:
struct A {
shared_ptr<B> b;
};
struct B {
shared_ptr<A> a;
};
//...
shared_ptr<A> a(new A());
shared_ptr<B> b(new B());
a->b(b);
b->a(a);
我知道这行不通,因为引用会继续指向彼此。我也被告知weak_ptr 解决了这个问题。
但是,weak_ptr 没有 get 或 -> 过载。我听说过“使用lock()”,但谁能给出如何正确执行此操作的代码示例?
【问题讨论】:
标签: c++ boost smart-pointers circular-dependency weak