智能指针拥有权问题

 1.深拷贝问题在于对于一个指向基类的指针采用深拷贝或者对象本身的拷贝函数不确定的时候,问题变的视乎极难处理。

2.临写拷贝同样也存在问题,它对调用者提出了比较高的要求,因为指针本身不知道是否执行临写拷贝。

3.引用计数是好,可以这也有多个策略。
a.为了指向引用计数段,指针大小翻倍,会导致空间占用量爬升。而且,必须在栈上保存计数器,分配这个小对象的C++分配器的效率也不尽人意,而且在栈空间紧缺的时候这会很头疼。
b.你可以使用代理层,在代理层保存这个计数器,但是效率让人不尽满意。
c.采用侵入式计数,但这要求对象被精心设计,当对象设计不合理或你无法决定pointee对象时,该方法毫无帮助,但如果你可以定制pointee,这个策略是相当不错的一个。

3.引用链接,所有指向同一个对象的指针做链表,这样不占用栈,可以体积稍大。

4.摧毁式拷贝,它的问题在于你可能不经意的摧毁了指针,譬如把它用于一次函数调用参数。

是的,智能指针是一场交易,明白各个形式的弱点很重要,你无法避免一个问题的时候,让这个问题不会影响你是个不错的选择。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值