是否有一种标准方法可以在 C++ 中的子对象中维护指向父对象(使用共享指针创建)的弱指针?
本质上,我需要在以下几行中实现一些东西:
Class B;
Class A
{
...
private:
B m_b;
};
Class B
{
....
public:
void SetParentPtr(const boost::shared_ptr<A>& a)
{
m_parentPtr = a;
}
private:
boost::weak_ptr<A> m_parentPtr;
};
在上面所有的B 类实例中都需要持有一个指向它们的父对象(即A 类的对象)的弱指针。A 类对象使用 shared_ptr 实例化。我可以想到一个使用空删除器的解决方案。但这是做这种事情的标准方式吗?