第一学:指针---android当中的智能指针(弱指针、强指针、轻量级指针)

原文位置:http://blog.csdn.net/luoshengyang/article/details/6786239
一、轻量级指针:
主体内容:
1、轻量指针计数器类:包含内部所指向的对象以及一个使用轻量指针的计数,当计数为0时会析构掉计数器中的对象。
2、轻量智能指针类:用以指向计数器,指向计数器时,计数器计数加一,智能指针析构时,计数器计数减一。
关键点:
1、智能指针的关键是用计数器替代对象本身。
2、一个计数器对应一个对象,多个计数器对应一个对象同样会造成内存错误。
3、智能指针类中控制计数器的方法是模板的,所以智能指针类传入的构造函数的参数必须实现了计数方法。

二、强指针与弱指针
主体内容:
1、强弱指针计数器类:同时持有强弱指针的计数以及用以判断析构方式的标志位,根据标志位来判断强计数、弱计数为0时是否析构计数器包含的对象。
2、强智能指针类:与轻量智能指针类没什么区别,主要的逻辑交给了强弱指针计数器类
3、弱智能指针类:与轻量智能指针类相比,多了一个自动升级指针的函数,并且通过强智能指针类中*与->的两个符号的重载来实现了弱指针向强指针的智能升级。

关键点:
1、计数器的析构需要根据创建时的标志位确定
2、弱指针可以提升为强指针
3、强指针提升时弱指针一定提升,弱指针提升时强指针不一定提升,弱指>=强指
4、强指针与弱指针的使用条件:强弱指针的存在主要目的在于避免循环调用,所以原则上强指针用于局部变量,需要控制生命周期的变量,弱指针用于指向父对象,不需要控制生命周期的变量。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值