C++智能指针 unique_ptr unique_ptr 独占所指向的对象, 同一时刻只能有一个 unique_ptr 指向给定对象(通过禁止拷贝语义, 只有移动语义来实现), 定义于 memory (非memory.h)中, 命名空间为 std. 标准库早期版本中定义了 auto_ptr, 它具 ...
分类:
编程语言 时间:
2016-10-04 14:12:36
阅读次数:
682
C++智能指针 shared_ptr shared_ptr 是一个标准的共享所有权的智能指针, 允许多个指针指向同一个对象. 定义在 memory 文件中(非memory.h), 命名空间为 std. shared_ptr 是为了解决 auto_ptr 在对象所有权上的局限性(auto_ptr 是独 ...
分类:
编程语言 时间:
2016-10-04 14:08:28
阅读次数:
242
C++智能指针 auto_ptr auto_ptr 是一个轻量级的智能指针, 定义于 memory (非memory.h)中, 命名空间为 std. auto_ptr 适合用来管理生命周期比较短或者不会被远距离传递的动态对象, 最好是局限于某个函数内部或者是某个类的内部. 使用方法: std::au ...
分类:
编程语言 时间:
2016-10-04 13:52:55
阅读次数:
208
auto_ptr是C++标准库中(<utility>)为了解决资源泄漏的问题提供的一个智能指针类模板(注意:这只是一种简单的智能指针) auto_ptr的实现原理其实就是RAII,在构造的时候获取资源,在析构的时候释放资源,并进行相关指针操作的重载,使用起来就像普通的指针。 std::auto_pt ...
分类:
其他好文 时间:
2016-09-27 15:01:00
阅读次数:
196
1.vc
template<class_Ty>
classauto_ptr
{
public:
typedef_Tyelement_type;
auto_ptr(_Ty*_P=0) :_Owns(_P!=0),_Ptr(_P)
{}
//拷贝构造将_Y的管理权_Owns=false释放后将指针赋值过去
auto_ptr(constauto_ptr<_Ty>&_Y):_Owns(_Y._Owns),_Ptr(_Y.release()..
分类:
系统相关 时间:
2016-09-09 01:10:05
阅读次数:
224
Item 14-在资源管理中小心的copying行为(Think carefully about copying behavior in resource-managing classes)
auto_ptr和trl::shared_ptr表现在heap_based资源上,然而并非所有资源都是heap_based,这样我们就需要建立自己的资源管理类。
例如:假设我们使用C API(Ap...
分类:
编程语言 时间:
2016-08-24 13:14:15
阅读次数:
170
以对象管理资源的观念常被称为“资源取得时机便是初始化时机”(RAII) auto_ptr被销毁时会自动删除它所指之物,所以一定要注意别让多个auto_ptr同时指向同一对象,否则对象会被删除多次,行为未定义 auto_ptr有一个性质:若通过拷贝构造函数或拷贝构造运算符复制它们,它们会变成NULL, ...
分类:
编程语言 时间:
2016-07-29 21:03:58
阅读次数:
229
1. 智能指针的意义 (1)现代C++开发库中最重要的类模板之一 (2)C++中自动内存管理的主要手段 (3)能够在很大程度上避开内存相关的问题(如内存泄漏、内存的多次释放等) 2. STL中的智能指针 (1)auto_ptr智能指针 ①生命周期结束时,销毁指向的内存空间 ②只能用来管理单个动态创建 ...
分类:
其他好文 时间:
2016-07-02 13:05:55
阅读次数:
157
1 auto_ptr 1 auto_ptr C++的auto_ptr所做的事情,就是动态分配对象以及当对象不再需要时自动执行清理。 使用std::auto_ptr,要#include <memory>。 ...
分类:
其他好文 时间:
2016-06-25 12:22:45
阅读次数:
554
C++没有像Java和C#那样存在自动内存回收机制,因此C++的内存管理是每一个C++程序员都要面对的问题。所幸的是,C++提供了智能指针这一机制来帮助我们自动地管理内存分配,大大方便了内存管理。 C++提供了两种智能指针:auto_ptr和shared_ptr,这两种类型都具备自动管理内存资源的功 ...
分类:
其他好文 时间:
2016-06-23 14:23:37
阅读次数:
175