auto_ptr 类

确保在的资源包装、聪明指针自动销毁资源,在控件退出块时。

更强的 unique_ptr 类取代 auto_ptr。 有关详细信息,请参阅unique_ptr 类

有关 throw() 和异常处理的更多信息,请参见 异常规范

template<class Type>
    class auto_ptr {
public:
    typedef Type element_type;
    explicit auto_ptr(Type *_Ptr = 0) throw();
    auto_ptr(auto_ptr<Type>& _Right) throw();
    template<class Other>
        operator auto_ptr<Other>() throw();
    template<class Other>
        auto_ptr<Type>& operator=(auto_ptr<Other>& _Right) throw();
    template<class Other>
        auto_ptr(auto_ptr<Other>& _Right);
    auto_ptr<Type>& operator=(auto_ptr<Type>& _Right);
    ~auto_ptr();
    Type& operator*() const throw();
    Type *operator->()const throw();
    Type *get() const throw();
    Type *release()throw();
    void reset(Type *_Ptr = 0);
};

参数

  • _Right
    auto_ptr 获取现有的资源。

  • _Ptr
    指定的替换存储指针的指针。

备注

模板类描述了、聪明指针调用 auto_ptr,,为分配的对象。 指针必须为空白或将 new分配的对象。 如果它存储的值被赋给了另一对象,则 auto_ptr 的所有权。(它在转发后替换存储的值为 null 指针。)auto_ptr<Type> 析构函数删除分配的对象。 auto_ptr<Type> 确保已分配的对象 (通过一引发的异常会自动被删除,在控件退出块时。 绝不应构造自己的对象中同样的两个 auto_ptr<Type> 对象。

可以传递一个 auto_ptr<Type> 对象的值作为参数传递给函数。 auto_ptr 不能作为任何标准库的容器元素。 不能可靠管理 auto_ptr<Type> 对象序列与标准模板库 (STL) 容器的。

成员

构造函数

auto_ptr

类型 auto_ptr对象的构造函数。

Typedef

element_type

类型是的同义词。Type模板参数

成员函数

get

成员函数返回的指针 myptr

版本

成员用 Null 值替换存储指针的指针 myptr 并返回以前存储的指针。

reset

由于函数调用,因此,只有存储,的指针值 myptr 更改成员,但是,函数计算表达式 delete myptr。 然后它用 ptr替换存储的指针。

运算符

operator=

将来自 auto_ptr 对象的所有权转移给另一个赋值运算符。

operator*

auto_ptr类型的取消引用对象的运算符。

operator->

允许的成员访问运算符。

运算符 auto_ptr<Other>

从一个类型转换为另一个 auto_ptrauto_ptr

运算符 auto_ptr_ref<Other>

auto_ptrauto_ptr_ref的强制转换。

要求

内存页眉:<memory>

命名空间: std

请参见

参考

C++ 标准库中的线程安全

unique_ptr 类

其他资源

memory 成员