我是靠谱客的博主 狂野蜻蜓,这篇文章主要介绍C++ boost库智能指针(一):scoped_ptr 与 scoped_array,现在分享给大家,希望可以做个参考。

        智能指针是C++11更新以后一直很热门的技术,这重点区分了C与C++,智能指针给C++程序员的内存管理带来了便利,同时也有风险,用不好容易翻车。

        boost提供了6种智能指针,scoped_ptr,  scoped_array,shared_ptr,shared_array,weak_ptr, intrusive_ptr, 如下图

        本篇主要介绍前两个.

一、scoped_ptr       

      scoped_ptr 是一个很类似 auto_ptr/unique_ptr 的智能指针,它包装了new操作符在堆上分配的动态对象,能够保证动态创建的对象在任何时候都可以被正确地删除。相对于std::auto_ptr,  scoped_ptr对指针的管理权更加严格,不能转让,有点像引用,一指向了,就不能变方向。一旦 scoped_ptr 获取了对象的管理权,我们就无法再从它那里取回来。
       从源码中,可以找到答案,这是因为在scoped_ptr内部对拷贝,赋值做了私有化:


                

最后

以上就是狂野蜻蜓最近收集整理的关于C++ boost库智能指针(一):scoped_ptr 与 scoped_array的全部内容,更多相关C++内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部