从零开始写STL 智能指针 智能指针的分类及其特点: scoped_ptr:初始化获得资源控制权,在作用域结束释放资源 shared_ptr: 引用计数来控制共享资源,最后一个资源的引用被释放的时候会析构 unique_ptr: 只能有一个持有资源引用的对象 weak_ptr:eak_ptr也维护了 ...
分类:
其他好文 时间:
2018-03-29 19:11:57
阅读次数:
171
上面这个例子就是会出现函数结束了 却忘记了释放内存 产生了内存泄漏 怎么避免这种问题呢 我们就利用函数在终止时 会对栈上的对象进行析构这个特点 产生了智能指针的概念 我们用智能指针来管理分配的资源 当我们函数退出时 智能指针执行自己的析构函数 释放它管理的资源 模板auto_ptr是C++98提供的... ...
分类:
其他好文 时间:
2018-03-21 14:03:51
阅读次数:
146
所谓智能指针就是自动化管理指针所指向的动态资源的释放。那么智能指针的引用是为了解决哪些问题呢?代码中经常会忘掉释放动态开辟的资源,引用智能指针可用于动态资源管理,资源分配即初始化,定义一个类来封装资源的分配和释放,在构造函数中完成资源的分配和初始化,在析构函数完成资源的清理,可以保证资源的正确初始化和释放。智能指针的原理:智能指针是一个类,这个类的构造函数中传入一个普通指针,析构函数中释放传入的指
分类:
其他好文 时间:
2018-03-19 20:52:10
阅读次数:
157
智能指针的实现代码来源博客:《http://blog.csdn.net/to_be_better/article/details/53570910》 修改:添加 get()函数,用以获得原始指针(raw pointer)。 其余思路来源《Effective C++》 智能指针的实现代码如下: 引用计 ...
分类:
编程语言 时间:
2018-03-16 12:11:23
阅读次数:
203
```C++ weak_ptr wp1; { shared_ptr ptr1(new Cls1);//共享指针 wp1 = ptr1;//临时共享指针 std::cout ...
分类:
其他好文 时间:
2018-03-13 15:45:35
阅读次数:
205
动态内存与智能指针 【智能指针】头文件#include<memory>shared_ptr: 允许多个指针指向同一个对象unique_ptr: "独占"所指向的对象weak_ptr:伴随类,它是一种弱引用,指向shared_ptr所管理的对象。 ...
分类:
其他好文 时间:
2018-03-13 01:12:07
阅读次数:
170
auto_ptr: unique_ptr: shared_ptr和weak_ptr: ...
分类:
其他好文 时间:
2018-03-04 18:09:20
阅读次数:
134
已经不用的内存,但没有释放,造成内存泄漏。内存已经释放,但是指向它的指针没有置空或销毁,造成空悬指针。 智能指针:指针变量销毁,它所指向的内存会自动释放。 unique_ptr是一种定义在<memory>中的智能指针(smart pointer)。它持有对对象的独有权——两个unique_ptr不能 ...
分类:
其他好文 时间:
2018-02-25 17:26:03
阅读次数:
147
只允许基础指针的一个所有者。 可以移到新所有者(具有移动语义),但不会复制或共享(即我们无法得到指向同一个对象的两个unique_ptr)。 替换已弃用的 auto_ptr。 相较于 boost::scoped_ptr。 unique_ptr 小巧高效;大小等同于一个指针,支持 rvalue 引用, ...
分类:
其他好文 时间:
2018-02-25 14:42:25
阅读次数:
232
C++没有内存回收机制,每次程序员new出来的对象需要手动delete,流程复杂时可能会漏掉delete,导致内存泄漏。于是C++引入智能指针,可用于动态资源管理,资源即对象的管理策略。 一、智能指针类别 智能指针主要有三种:shared_ptr,unique_ptr和weak_ptr。 share ...
分类:
其他好文 时间:
2018-02-25 12:58:35
阅读次数:
235