2016-01-17 85 views
6

D如何管理對象的所有權?例如,我需要表達如下:弱引用或指針

1.) Allocate an object 
2.) Give out references/pointers 
3.) If the initially allocated object is deleted, 
    all references/pointers should become inaccessible. 

C++這是可能的std::shared_ptr + std::weak_ptr。在D中這也是可能的嗎?

+0

請參閱https://dlang.org/spec/garbage.html以更好地瞭解如何控制對象的生命週期。 –

+0

@key_你確定你發佈了正確的鏈接嗎?我找不到與生活時間管理有關的任何事情。 –

+0

你會想要實現一個密封的引用,然後保持指針的指針,每當你交出一個。那些指針會想知道他們自己的一生從列表中刪除自己......這涉及相當多的開銷。弱引用本身很容易 - 只需創建GC不掃描的指針,或不增加您的refcount,但在刪除對象時使其無效更難。 –

回答

2
+1

我討厭這麼多D論壇主題在URL中有美元符號。 Bah,它打破了很多URL檢測器。 –