是否有一種標準的方法來維護C++中的子對象中的父指針(使用共享指針創建)的弱指針?如何在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實例化。我可以考慮使用空刪除器的解決方案。但是,這是做這種事的標準方式嗎?
stefaanv恕我直言,建議enable_shared_from這個範例更適合我正在嘗試做的事情。它使得用戶可以透明地從父級的任何成員函數中獲取共享指針 - 然後可以將其分配給子級持有的弱指針。 – anbhat 2009-06-30 04:33:48