boost库中智能指针的发展

boost库下各种智能指针的发展:


                    智能指针的发展是为了解决内存泄漏的情况而诞生,在大型工程中,即时足够小心的保证new和delete 匹配出现。    但无法避免throw的异常抛出导致一段程序的提前结束而产生的内存泄漏。

                    诞生智能指针,用类封装原生指针。


                        auto_ptr    引入一个所有权的概念。指向的改变标志所有权的变更。 但是无法解决如下问题:

                        

                在一个块内对所有权做出改变,结束后再去修改内容时所有权已经不属于自己。因此在新的c++标准中将auto_ptr去除。




                        scoped_ptr : auto_ptr 的改进,如其名字一样。该智能指针 仅在一个作用域中有效





                     由于以上的缺陷,引入shared_ptr 共享型智能指针,加入一个count的引用计数,需要赋值或者更改的操作,只需要变更引用计数。但是 无法解决循环计数的问题。



                        最终,引入weak_ptr
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值