Gau*_*Das 1 c++ pointers smart-pointers weak-ptr c++14
以下是我对智能指针的了解
在双向链表的情况下,我们有两个指针指向前一个和下一个节点。我们在实现中使用了shared_ptr和weak_ptr。为什么我们不使用两个weak_ptr?
我们不使用两个,weak_ptr因为它不起作用。
想象一个有两个节点的列表。列表头是第一个节点的非弱指针。所以第一个节点保持活动状态。但是什么非弱指针可以让第二个节点保持活动状态呢?
管理对象的生命周期有两个挑战。他们应该活得足够长,但不能太长。这不仅适用于 C++ 或智能指针,这几乎是所有编程语言的基本问题。您可以通过理解您正在解决的问题并用您的语言提供的工具表达该问题来解决它。