感觉auto_ptr还是存在一些不足的,效率十分低,而且丢失了一般指针方便常用的操作,如++,--等,auto_ptr只重载了=,*,->这几个操作符,所以使用很不方便。
一、说明:int *a = NULL;delete a;//do nothing
应此auto_ptr的析构函数是这样子的:
~auto_ptr()
{ // destroy the...
分类:
其他好文 时间:
2015-03-15 09:36:50
阅读次数:
149
为什么auto_ptr不可以作为STL标准容器的元素
假如有这样的一段代码,是否能够运行?
?
1
2
3
4
5
6
7
8
9
int
costa_foo()
{
vector
> v(10);
...
分类:
其他好文 时间:
2015-03-14 18:40:43
阅读次数:
129
auto_ptr是当前C++标准库中提供的一种智能指针,或许相对于boost库提供的一系列眼花缭乱的智能指针, 或许相对于Loki中那个无所不包的智能指针,这个不怎么智能的智能指针难免会黯然失色。诚然,auto_ptr有这样那样的不如人意,以至于程序员必须像使用”裸“指针那样非常小心的使用它才能.....
分类:
其他好文 时间:
2015-03-14 10:59:22
阅读次数:
166
auto_ptr // 头文件 std::auto_ptr ptr1(new ClassA); // okstd::auto_ptr ptr2 = new ClassA; // error 不允许 赋值(assign)初始化方式auto_ptr赋值会导致所有权的转移auto_ptr错误运用:1.au...
分类:
其他好文 时间:
2015-03-10 19:04:56
阅读次数:
122
C++ 智能指针
flyfish 2015-3-1
使用原始指针进行显示内存管理在性能上有优势,但容易出错。诸如 野指针,重复释放,内容泄露等。
C++为了在编程语言上支持更好的内存管理机制,C++98提供了auto_ptr,因为auto_ptr的缺点在C++11中被废弃,C++11提供了
unique_ptr,shared_ptr,weak_ptr等智能指针在自动回收堆分配的内存,智能指...
分类:
编程语言 时间:
2015-03-01 17:09:47
阅读次数:
253
boost::scoped_ptr和std::auto_ptr非常类似,是一个简单的智能指针,它能够保证在离开作用域后对象被自动释放。下列代码演示了该指针的基本应用:#include #include #include class implementation{public: ~impleme...
分类:
其他好文 时间:
2015-02-27 13:21:50
阅读次数:
181
#include #include //For STL auto_ptr class//--------------------------------------------------------------------------- #pragma argsusedint _tm...
分类:
其他好文 时间:
2015-02-06 11:04:45
阅读次数:
225
http://www.cnblogs.com/tianfang/archive/2008/09/15/1291050.htmlboost::scoped_ptr和std::auto_ptr非常类似,是一个简单的智能指针,它能够保证在离开作用域后对象被自动释放。下列代码演示了该指针的基本应用:#inc...
分类:
其他好文 时间:
2015-02-02 19:29:02
阅读次数:
241
为防止资源泄漏,请使用RAII(Resource Acquisiton Is Initialization) 对象,它们在构造函数中获得资源并在析构函数中释放资源。两个常被使用的RAII classes 分别是tr1::shared_ptr和auto_ptr。前者通常是较佳选择,因为其copy行为比...
分类:
编程语言 时间:
2015-01-30 22:23:54
阅读次数:
171
boost.smart_ptr库提供了六种智能指针:scoped_ptr、scoped_array、shared_ptr、shared_array、week_ptr和intrusive_ptr。
说到智能指针,我们会想到c++98标准中的自动指针auto_ptr.auto_ptr获取指针所有权后,离开作用域时自动释放该指针指向的堆内存。也可以转移指针的所有权。
auto_ptr ap_a1(new...
分类:
其他好文 时间:
2015-01-30 21:08:29
阅读次数:
364