我有一个设计,其中的对象同时拥有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