我目前处于这样的情况:
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
没有获取或->
重载。我听说过“使用lock()
”,但是任何人都可以给出如何正确执行此操作的代码示例吗?