0
点赞
收藏
分享

微信扫一扫

c++智能指针


raw pointer原指针

原指针就是正常的指针:​​type * pointer_name = & variable_name;​

智能指针

一种包括堆区原指针的对象,用来更好管理对象的生命周期。C++11

最佳实践

nullptr

Also note the use of ‘nullptr’ in C++ instead of NULL

情况使用

std::shared_ptr比std::unique_ptr更受欢迎的情况有什么例子?

一般来说,你可以在以下两种情况下使用std::shared_ptr:

*存在共享所有权(非常罕见,通常是一个所有者和许多观察者)。

*只有一个所有者,但是观察者可能会比所有者停留更久。

当我们有所有权循环(例如。不是dag的图表),我们有两个选择:

*首选:具有类似于std::vector<std::unique_ptr>的内容,每个节点存储指向其他节点的原始指针。如果很难找到所有的原始指针并在删除唯一指针时删除它们,这可能是不可能的。

*否则:使用类似std::vector<std::shared_ptr>,并且每个节点存储指向其他节点的弱指针(不要在每个节点存储共享指针——节点永远不会被删除)


举报

相关推荐

0 条评论