我有一個設計,其中的對象同時擁有2個隊列。偶爾隊列本身可能會被刪除。在這種情況下,必須刪除隊列中的所有對象並將它們從其他隊列中刪除。引用計數智能指針刪除擁有的對象ref ref大於零?
當前解決方案擁有知道兩個擁有隊列的擁有對象,但這會引入醜陋的耦合。
有智能指針類可以幫助我嗎?構造可以是「新」或現有指針的副本。銷燬將刪除所擁有的資源。訪問將像weak_ptr一樣,提供指向null的可能性。
我想它可能需要一個特定的'銷燬'方法,以確保指針的臨時副本不釋放資源。
有沒有人知道這樣的事情?
感謝, 託尼
謝謝。這聽起來不錯,但是如果一個隊列死掉,並且我們在另一個隊列中「掛起」包裝器(並且仍然是實際排隊的對象),它們何時被刪除?我想不是忽略已標記的死亡物品,而是刪除它們。 – 2010-11-07 23:46:11
Probem在這裏將是如果一個隊列變得安靜但沒有被刪除。也許隊列可以定期搜索死對象。 – 2010-11-07 23:49:02
您是否定期從每個隊列中拉出項目?如果是這樣,上述「何時」問題的答案是「當它們從另一個隊列中移除時。「在第二個評論中,」安靜「的意思是什麼? – 2010-11-08 00:10:25