我有一個關於shared_ptrs和C++所有權的問題:C++:Circularity和shared_ptr
我有一堆在堆上創建的對象。每一個都有一個容器,它容納指向這些對象的指針,有時甚至是指向容器所屬的同一對象的指針。因爲我在這種情況下閱讀了使用shared_ptr的風險(循環),所以我正在考慮如何做到最好。 幸運的是,有一個類包含所有有問題的對象(但不是它本身),所以我認爲我把它放在它們的所有權上,這樣當有問題的對象保存原始指針時,它的容器就擁有shared_ptrs。也就是說,類的銷燬釋放了堆分配的內存。這(也是在設計方面)是一個很好的決定嗎?
另一個不是讓對象保持指針,而是唯一的ID。這意味着通過ID實際獲得對象的查找,但是,我認爲這也會減少對象間的關鍵依賴關係。這是可取的嗎?
問候,
耶拿
@downvoter:你能解釋downvote的原因,以便給我一個改善的機會嗎? – 2012-07-22 16:31:14