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 を使用してインスタンス化されます。null デリーターを使用するソリューションを考えることができます。しかし、それはこのようなことを行う標準的な方法ですか?