多个智能指针指向同一片堆空间的需求是巨大的。 计数变量也是在堆空间里面定义的,它的生命周期和对象的生命周期相同。 添加SharedPointer.h文件: 测试程序如下: 运行结果如下: 第二个测试程序: 结果如下: 一个堆空间被三个指针指向,最终只释放一次。 编译警告: 提示我们要在SharedP ...
分类:
其他好文 时间:
2018-09-16 00:31:46
阅读次数:
230
思考: 使用智能指针替换单链表LinkLIst中的原生指针是否可行? 将LinkList.h中的Node指针全部改成智能指针: 测试程序如下: 运行结果如下: 程序直接崩溃了。 我们的SmartPointer设计中,一片堆空间最多只能由一个指针标识,但是我们设计的和遍历有关的函数,例如move、en ...
分类:
其他好文 时间:
2018-09-15 21:18:09
阅读次数:
175
转自 http://www.cnblogs.com/lanxuezaipiao/p/4132096.html 导读 最近在补看《C++ Primer Plus》第六版,这的确是本好书,其中关于智能指针的章节解析的非常清晰,一解我以前的多处困惑。C++面试过程中,很多面试官都喜欢问智能指针相关的问题, ...
分类:
编程语言 时间:
2018-09-15 16:34:32
阅读次数:
176
智能指针(三):unique_ptr使用简介:https://blog.csdn.net/weiwenhp/article/details/8708281 ...
分类:
编程语言 时间:
2018-09-14 17:22:19
阅读次数:
141
思想: 为了避免浪费资源,C++类对象带有析构函数,在对象调用完之后,完成清理工作。如果对于本地变量也能完成这个功能就好了,C++智能指针就是做这件事的。 用法: auto_ptr、unique_ptr、shared_ptr和weak_ptr四种智能指针 auto_ptr<string>ps;//生 ...
分类:
其他好文 时间:
2018-09-07 14:18:09
阅读次数:
167
1、C++98的智能指针 2、C++11的智能指针 智能指针本质是一个模板类 (1)三种智能指针 头文件 <memory> unique_ptr 共享的智能指针 shared_ptr 独占的智能指针 weak_ptr 弱引用的智能指针 (2)explict关键字 C++11之后的智能指针的构造函数都 ...
分类:
编程语言 时间:
2018-09-06 14:47:09
阅读次数:
261
template<class T> class shared_ptr{ public: T& operator*( ) const {return *px;} T* operator->( ) const {return px;} shared_ptr(T* p) : px(p) { } priva ...
分类:
编程语言 时间:
2018-09-02 23:59:35
阅读次数:
299
第12章 动态内存 12.1 智能指针 shared_ptr<T> make_shared<T>(args) 直接初始化 new int(10); 默认初始化 new int; 值初始化 new int(); 由内置指针(而不是智能指针)管理的动态内存在被显示释放前一直都会存在。 最好坚持只使用智能 ...
分类:
编程语言 时间:
2018-08-26 16:49:20
阅读次数:
190
Android系统的运行时库层代码是用C++来编写的,用C\++ 来写代码最容易出错的地方就是指针了,一旦使用不当,轻则造成内存泄漏,重则造成系统崩溃。不过系统为我们提供了智能指针,避免出现上述问题,本文将系统地分析Android系统智能指针(轻量级指针、强指针和弱指针)的实现原理。 在使用C++来 ...
分类:
移动开发 时间:
2018-08-20 21:53:33
阅读次数:
225
前几节我们开发的智能指针类和异常类族并没有继承自Object,现在我们需要将它们进行整合,作为DTLib这个类库的基础设施。整合的时候需要遵循现代软件的架构模式。 遵循经典设计准则 DTLib中所有类位于单一继承树,可以根据下图中的方式进行整合: 在异常类族中有了新的成员InvalidOperati ...
分类:
其他好文 时间:
2018-08-19 13:54:17
阅读次数:
114