关闭

智能指针拥有权问题

426人阅读 评论(0) 收藏 举报

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

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

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

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

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

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

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:181272次
    • 积分:2935
    • 等级:
    • 排名:第12554名
    • 原创:113篇
    • 转载:3篇
    • 译文:0篇
    • 评论:28条
    文章分类