码迷,mamicode.com
首页 >  
搜索关键字:智能指针 raii    ( 914个结果
【足迹C++primer】40、动态数组
动态数组 C++语言定义了另外一种new表达式语法,可以分配并初始化一个对象数组。标准库中包含 一个名为allocator的类,允许我们将分配和初始化分离。 12.2.1 new和数组 void fun1() { int *pia=new int[2]; //pia指向第一个int //方括号中的大小必须是整型,但不必是常量 typedef int arrT[42...
分类:编程语言   时间:2014-07-10 19:39:17    阅读次数:336
【足迹C++primer】39、动态内存与智能指针(3)
动态内存与智能指针(3) /** * 功能:动态内存与智能指针 * 时间:2014年7月8日15:33:58 * 作者:cutter_point */ #include #include #include #include using namespace std; /** 智能指针和异常 */ void f() { shared_ptr sp(new int(42)); ...
分类:编程语言   时间:2014-07-09 09:08:04    阅读次数:161
C/C++之智能指针shared_ptr
1、定义shared_ptr的作用有如同指针,但会记录有多少个shared_ptrs共同指向一个对象。这便是所谓的引用计数(reference counting)。一旦最后一个这样的指针被销毁,也就是一旦某个对象的引用计数变为0,这个对象会被自动删除。这在非环形数据结构中防止资源泄露很有帮助。aut...
分类:编程语言   时间:2014-07-09 00:36:15    阅读次数:250
(转)剖析C++标准库智能指针(std::auto_ptr)
不可否认,资源泄露(resource leak)曾经是C++程序的一大噩梦.垃圾回收 机制(Garbage Collection)一时颇受注目.然而垃圾自动回收机制并不能 满足内存管理的即时性和可视性,往往使高傲的程序设计者感到不自在. 况且,C++实现没有引入这种机制...
分类:编程语言   时间:2014-07-08 23:45:57    阅读次数:348
C++智能指针--unique_ptr
unique_ptr是一个独享所有权的智能指针,它提供了一种严格语义上的所有权,包括:     1、拥有它所指向的对象。     2、无法进行复制构造,也无法进行复制赋值操作。也就是说,我们无法得到指向同一个对象的两个unique_ptr。但是可以进行移动构造和移动赋值操作。     3、保存指向某个对象的指针,当它本身被删除释放的时候(比如,离开了某个作用域),会使用给定的删除器释放它指向...
分类:编程语言   时间:2014-07-08 17:23:41    阅读次数:271
C++智能指针--weak_ptr
weak_ptr是对对象的一种弱引用,它不会增加对象的引用计数。weak_ptr和shared_ptr之间可以相互转换,shared_ptr可以直接赋值给week_ptr,week_ptr可通过调用lock函数来获得shared_ptr(如果对象已经被释放,则返回一个空的shared_ptr)。     单纯使用shared_ptr有时会产生问题,考虑下面的代码: 1 class...
分类:编程语言   时间:2014-07-08 17:10:39    阅读次数:289
【足迹C++primer】39、动态内存与智能指针(2)
动态内存与智能指针(2) 直接管理内存 void fun1() { //此new表达式在自由空间构造一个int型对象,并返回指向该对象的指针 int *pi1=new int; //pi指向一个动态分配、未初始化的无名对象 string *ps3=new string; //初始化为空string int *pi2=new int; ...
分类:编程语言   时间:2014-07-08 15:51:21    阅读次数:269
C++智能指针--auto_ptr指针
这里先介绍auto_ptr的缺陷: 因为auto_ptr并不是完美无缺的,它的确很方便,但也有缺陷,在使用时要注意避免。首先,不要将auto_ptr对象作为STL容器的元素。C++标准明确禁止这样做,否则可能会碰到不可预见的结果 auto_ptr的另一个缺陷是将数组作为auto_ptr的参数: auto_ptr  pstr (new char[12] ); //数组;为定义 然后释放资源...
分类:编程语言   时间:2014-07-08 14:38:50    阅读次数:240
C++智能指针--shared_ptr
shared_ptr是一个引用计数智能指针,用于共享对象的所有权。它可以从一个裸指针、另一个shared_ptr、一个auto_ptr、或者一个weak_ptr构造。还可以传递第二个参数给shared_ptr的构造函数,它被称为删除器(deleter)。删除器用于处理共享资源的释放,这对于管理那些不是用new分配也不是用delete释放的资源时非常有用。shared_ptr被创建后,就可以像普通指...
分类:编程语言   时间:2014-07-08 13:26:57    阅读次数:191
TR1内的组件--智能指针、function
一、智能指针        tr1::shared_ptr和tr1::weak_ptr。前者的作用有如内置指针,但会记录有多少个tr::shared_ptrs共同指向同一个对象,这便是所谓的引用计数。一旦最后一个这样的指针被销毁,也就是一旦某一个对象的引用计数为0,这个对象会被自动删除。这在非环形数据结构中防止资源泄露很有帮助,但如果两个或多个对象内含tr1::shared_ptrs并形成环状,...
分类:其他好文   时间:2014-07-06 11:43:58    阅读次数:186
914条   上一页 1 ... 85 86 87 88 89 ... 92 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!