auto_ptr类

Posted 陌尘枫

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了auto_ptr类相关的知识,希望对你有一定的参考价值。

auto_ptr类

  auto_ptr类,主要用于管理动态内存分配。当auto_ptr对象过期时,析构函数将使用delete来释放内存。将new返回的地址赋值给auto_ptr对象时,无须记住还需要释放这些内存。在auto_ptr对象过期时,内存将自动被释放。

  使用auto_ptr对象时,必须包含头文件<memory>。该文件包含auto_ptr模板。使用通常的模板句法来实例化所需类型的指针。auto_ptr构造函数是显式的,不存在从指针到auto_ptr对象的隐式类型转换。

1 auto_ptr <double>pd;
2 double *p_reg = new double;
3 pd = p_reg;                                //不允许
4 pd = auto_ptr<double>(p_reg);   //允许
5 auto_ptr<double> pauto = p_reg;//不允许
6 auto_ptr<double>pauto(p_reg);//允许     

  注意:在使用auto_ptr时,只能配对使用new和delete。只能对new分配的内存使用auto_ptr对象,不能对由new[]分配的或通过声明变量分配的内存使用它。

以上是关于auto_ptr类的主要内容,如果未能解决你的问题,请参考以下文章

std::auto_ptr 在我的模板类中编译,但不是 std::unique_ptr

智能指针分析及auto_ptr源码

auto_ptr的使用

c++中的智能指针auto_ptr解析

智能指针的模拟实现 auto_ptr scoped_ptr shared_ptr

auto_prt的VS版本源码剖析