本文我们主要来总结一下前文介绍过的智能指针相关原理及实现,顺便补充一下前文未提到的shared_ptr删除器部分的内容. 总结: 1.智能指针,通过RAII机制,构造对象时完成资源的初始化,析构对象时,对资源进行清理和汕尾. 2.auto_ptr,防止拷贝/赋值对象后,析构时多次delete对象导致 ...
分类:
编程语言 时间:
2017-04-03 18:12:00
阅读次数:
240
在开始本文内容之前,我们再来总结一下,前文内容: 1.智能指针采用RAII机制,在构造对象时进行资源的初始化,析构对象时进行资源的清理及汕尾. 2.auto_ptr防止拷贝后析构释放同一块内存,采用"转移所有权"的方法.(实际开发中auto_ptr并不实用) 3.scoped_ptr与auto_pt ...
分类:
编程语言 时间:
2017-04-03 11:30:02
阅读次数:
250
其实auto_ptr并不难理解。其本质上是一种类,这个类可以进行指针运算符的操作。但是他可以进行指针的智能管理,克服了裸指针抛出异常时,没有被调用虚构函数的风险。 其使用有一个最简单的逻辑,就是一旦碰见裸指针,就将其交给智能指针去管理。 auto_ptr不能作为STL容器的元素,因为STL在存入元素 ...
分类:
其他好文 时间:
2017-04-02 17:45:56
阅读次数:
170
在介绍scoped_ptr之前,我们先回顾一下前两篇文章的内容. 首先,智能指针采用RAII机制,通过对象来管理指针,构造对象时,完成资源的初始化;析构对象时,对资源进行清理及汕尾. auto_ptr,通过转移管理权来完成对象的拷贝与赋值,在实际开发中并不实用. 回顾完智能指针的背景及auto_pt ...
分类:
编程语言 时间:
2017-04-01 23:00:07
阅读次数:
219
游戏引擎与C++参考CppCon 2016: Jason Jurecka “Game engine using STD C++ 11"此presentation主要关注C++11在游戏引擎中的使用游戏...
分类:
编程语言 时间:
2017-03-22 21:40:24
阅读次数:
251
1.auto_ptr 和 scoped_ptr 的异同 a 和 s 都是通过析构函数去 delete T* 实现自动释放内存。a 可以转移所有权,但是 s 不可以 2. scoped_array sa 管理 new [] 分配的内存,析构时使用delete [] 因为 sa 不能动态增长,没有ite ...
分类:
其他好文 时间:
2017-03-15 18:52:01
阅读次数:
155
1. 自己实现一个资源管理类 Item 13中介绍了 “资源获取之时也是初始化之时(RAII)”的概念,这个概念被当作资源管理类的“脊柱“,也描述了auto_ptr和tr1::shared_ptr是如何用堆资源来表现这个概念的。然而并不是所有资源都是在堆上创建的,对于这种资源,像auto_ptr和t ...
分类:
编程语言 时间:
2017-02-19 11:04:36
阅读次数:
175
http://www.cnblogs.com/lewiskyo/p/4214592.html 之前写过一篇文章介绍智能指针,并且简单实现了auto_ptr. 里面提到 auto_ptr 不能做为Stl容器的元素,原因具体是 http://www.360doc.com/content/14/0429/ ...
分类:
其他好文 时间:
2017-01-01 17:16:02
阅读次数:
192
《EffectiveC++》读书笔记之三资源管理准备知识:所谓资源就是,一旦用了它,将来必须还给系统。最常用的资源是动态分配内存,其他常见的资源有文件描述器、互斥锁、图形界面的字形和笔刷、数据库连接以及网络sockets。auto_ptr是个“类指针对象”,就是所谓的智能指针,其析构..
分类:
编程语言 时间:
2016-11-04 02:19:21
阅读次数:
172
c++11标准废除乐auto_ptr, C++ 标准库智能指针 使用这些智能指针作为将指针封装为纯旧 C++ 对象 (POCO) 的首选项。 unique_ptr 只允许基础指针的一个所有者。 除非你确信需要 shared_ptr,否则请将该指针用作 POCO 的默认选项。 可以移到新所有者,但不会 ...
分类:
其他好文 时间:
2016-10-20 22:05:55
阅读次数:
215