智能指针拥有权问题

原创 2007年09月13日 17:24:00

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

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

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

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

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

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

如何回答C++面试中关于智能指针的问题?

如何回答C++面试中关于智能指针的问题? 1、  什么是智能指针? 2、  分析下常见的智能指针有哪些? 3、实现一个智能指针呗?(没具体说写哪个,建议默认写:unique_ptr) 1、答:智能指针...

c++ 智能指针及 循环引用问题

c++智能指针介绍 由于 C++ 语言没有自动内存回收机制,程序员每次 new 出来的内存都要手动 delete,比如流程太复杂,最终导致没有 delete,异常导致程序过早退出,没有执行 de...

c++内存问题整理与智能指针使用

公司里小组组织c++知识的分享会,正好我手上碰到过几个purify的内存泄露问题,就借这里总结一下c++的内存问题。   借鉴陈硕总结的分类,c++大致的内存问题有以下几个方面:   1.缓冲区溢...

有效的使用和设计COM智能指针——条款27:考虑__uuidof与uuid在关键字在不同编译器上的兼容问题

条款27:考虑__uuidof与uuid在关键字在不同编译器上的兼容问题 更多条款请前往原文出处:http://blog.csdn.net/liuchang5 你可能还记得条款11中提出的“不轻易...

智能指针的交叉引用问题及解决方法

*本篇讨论一下因为智能指针的交叉引用造成的内存泄漏问题和解决方法。。。→_→*...

c++ 智能指针及 循环引用问题

c++智能指针介绍 由于 C++ 语言没有自动内存回收机制,程序员每次 new 出来的内存都要手动 delete,比如流程太复杂,最终导致没有 delete,异常导致程序过早退出,没有执行 delet...

使用智能指针优化C++类对象深度复制效率问题

有这样的情形: class MyString { public: MyStr };

智能指针(上)-----动态管理内存问题,auto_ptr的模拟实现

今天我们来详解C++中一个重要的知识点——智能指针。文章主要以下面几点来展开: 智能指针定义及动态内存的管理 智能指针作用 auto_ptr的模拟实现 智能指针定义 智能指针简单理解就是智能的指针,...
  • Pg_dog
  • Pg_dog
  • 2017年04月13日 09:22
  • 617

C++面试中关于智能指针的问题

1、 什么是智能指针? 2、 分析下常见的智能指针有哪些? 3、实现一个智能指针呗?(没具体说写哪个,建议默认写:unique_ptr) 1、答:智能指针(smart pointer)是存储...

c++ 智能指针及 循环引用问题

c++智能指针介绍 由于 C++ 语言没有自动内存回收机制,程序员每次 new 出来的内存都要手动 delete,比如流程太复杂,最终导致没有 delete,异常导致程序过早退出,没有执行 de...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:智能指针拥有权问题
举报原因:
原因补充:

(最多只允许输入30个字)