auto_ptr Class
在相应的资源环绕智能指针自动销毁该资源,则控件将块时。
更强的 unique_ptr 选件类取代 auto_ptr。 有关更多信息,请参见unique_ptr Class。
有关 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, 到已分配的对象。 指针必须为 null 或指定 new分配的对象。 则该存储的值赋给另一个对象,auto_ptr 所有权转移。 (它是在调用后替换存储的值带 null 指针。)auto_ptr<Type> 的析构函数删除分配的对象。 auto_ptr<Type> 确保已分配的对象即使通过引发的异常时自动删除,当控件保留块时。 不应构造拥有同一对象的两 auto_ptr<Type> 对象。
在对参数的函数调用,您可以通过 auto_ptr<Type> 对象的值。 auto_ptr 不能为任何标准库 (stl) 容器中的元素。 您不能可靠地进行管理 auto_ptr<Type> 对象序列与标准模板库 (stl) 容器的。
成员
构造函数
类型 auto_ptr对象的构造函数。 |
Typedef
该类型是模板参数的 Type同义词。 |
成员函数
成员函数返回存储的指针 myptr。 |
|
该成员带 null 指针替换存储的指针 myptr 并返回以前存储的指针。 |
|
只有 + 当由于存储区的指针值 myptr 更改函数调用,成员函数计算表达式 delete myptr,,但。 它将 ptr然后替换存储的指针。 |
运算符
从一 auto_ptr 对象所有权转移到另一个的赋值运算符。 |
|
类型 auto_ptr对象的取消引用的运算符。 |
|
允许有成员访问运算符。 |
|
从一个转换为另一个 auto_ptrauto_ptr。 |
|
从 auto_ptr 的转换到 auto_ptr_ref。 |
要求
标头:<memory>
命名空间: std