2009-05-19 19 views
0

我有一個引用了一堆其他類的類。我希望能夠增量式地添加這些引用(即,不是所有的同時都在構造函數中),並且我想禁止從我的類中刪除這些引用的基礎對象的能力,我也想測試NULL-ness在這些參考文獻中,我知道一個特定的參考文獻尚未添加。完成這些要求的好設計是什麼?如何在一個類中最好地處理一堆引用

+0

你能更具體嗎? – 2009-05-20 00:05:51

回答

1

我同意您應該使用boost::shared_ptr的其他評論。

但是,如果您不希望持有這些引用的類部分控制它引用的對象的生存期,則應考慮使用boost::weak_ptr來保存引用,然後在需要時將其轉換爲shared_ptr。這將允許在您的課程之前刪除引用的對象,並且在使用它之前,您將始終知道對象是否已被刪除。

0

不應該使用refcounted類,以便您的引用將被管理,直到您的主類被破壞。

0

您很可能正在尋找boost::shared_ptr

0

儘管您使用boost:; shared_pointer的所有建議,但從您的帖子中可以看出,這樣做很合適,因爲該類似乎沒有所有權語義。普通的C++指針在這裏可以做得很好。

在一天結束時很難阻止通過智能指針刪除,因爲智能指針必須以某種形式或其他形式提供對底層啞指針的訪問,這總是可以被刪除。對於某些問題,沒有技術解決方案,在這種情況下,代碼檢查是檢測使用包含指針的語義錯誤的最佳方法。

0

你想引用的對象可以從這樣的東西派生。這會阻止你刪除它們。

T類 類不可刪除:公共牛逼 { 私人: 無效的operator delete(void *的); };

相關問題