What's auto_ptr? The auto_ptr type is provided by the C++ standard library as a kind of a smart pointer that helps to avoid resource leaks when excep....
分类:
其他好文 时间:
2014-09-16 23:25:21
阅读次数:
214
智能指针(smart pointer)是存储指向动态分配(堆)对象指针的类,能够在适当的时间自动删除指向的对象外,能够确保正确的销毁动态分配的对象。
标准库的智能指针为auto_ptr。boost库的智能指针族在功能上做了扩展。
1.auto_ptr
auto_ptr注意事项如下。
①auto_ptr不能共享所有权。
②auto_ptr不能指向数组。
③auto_ptr不能作为...
分类:
编程语言 时间:
2014-09-05 16:18:21
阅读次数:
204
题记:内存管理一直是C/C++程序的红灯区。关于内存管理的话题,大致有两类侧重点,一类是内存的正确使用,例如C++中new和delete应该成对出现,用RAII技巧管理内存资源,auto_ptr等方面,很多C/C++书籍中都使用技巧的介绍。另一类是内存管理的实现,如linux内核的slab分配器,S...
分类:
其他好文 时间:
2014-09-03 00:06:15
阅读次数:
545
第三章:迭代器概念与traits编程技法 迭代器是一种smart pointer auto_Ptr 是一个用来包装原生指针(native pointer)的对象,声明狼藉的内存泄漏问题可藉此获得解决。 auto_ptr用法如下,和原生指针一模一样:void func() { auto_p...
分类:
其他好文 时间:
2014-09-02 22:34:25
阅读次数:
266
条款13:以对象管理资源许多资源被动态分配于heap内而后被用于单一区块或函数内。它们应该在控制流离开那个区块或函数时被释放。标准程序库提供的auto_ptr正是针对这种形式而设计的特制产品。auto_ptr是个类指针对象,也就是智能指针,其析构函数自动对其所指对象调用delete。以对象管理资源的...
分类:
编程语言 时间:
2014-08-31 19:59:51
阅读次数:
292
条款13:以对象管理资源
使用RAII,获得资源后立刻放进管理对象,管理对象运用析构函数确保资源被释放。
为防止资源泄露,请使用RAII对象,它们在构造函数中获得资源并在析构函数中释放资源。
两个常被使用的RAII类是tr1::shared_ptr和tr1::auto_ptr。前者通常是较佳选择,因为其拷贝行为比较直观。若选择auto_ptr,复制动作会使被复制物指向null.
条款14...
分类:
编程语言 时间:
2014-08-22 16:22:49
阅读次数:
250
BOOST库里面给出的几种智能指针中最简单也是与auto_ptr最接近的一种指针。...
分类:
其他好文 时间:
2014-08-21 17:16:44
阅读次数:
171
boost中提供了几种智能指针方法:scoped_ptr shared_ptr intrusive_ptr weak_ptr,而标准库中提供的智能指针为auto_ptr.这其中,我最喜欢,使用最多的是shared_ptr,也最让人随心所欲.使用很简单,如下:头文件 class A{virtual v...
分类:
其他好文 时间:
2014-08-14 01:16:37
阅读次数:
243
Q: 那个auto_ptr是什么东东啊?为什么没有auto_array?A: 哦,auto_ptr是一个很简单的资源封装类,是在头文件中定义的。它使用“资源分配即初始化”技术来保证资源在发生异常时也能被安全释放(“exception safety”)。一个auto_ptr封装了一个指针,也可以被当作...
分类:
其他好文 时间:
2014-08-14 01:12:07
阅读次数:
340
RAII(resource acquisition is initialization):资源获取时便是初始化时机。不论控制流如何离开执行的区域块,其析构函数被调用,资源被释放。为防止内存泄露使用auto_ptr或shared_ptr();auto_ptr sp(new class)+shared_...
分类:
其他好文 时间:
2014-08-11 17:22:02
阅读次数:
204