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对象的构造函数。 |
Typedef
类型是的同义词。Type模板参数 |
成员函数
成员函数返回的指针 myptr。 |
|
成员用 Null 值替换存储指针的指针 myptr 并返回以前存储的指针。 |
|
由于函数调用,因此,只有存储,的指针值 myptr 更改成员,但是,函数计算表达式 delete myptr。 然后它用 ptr替换存储的指针。 |
运算符
将来自 auto_ptr 对象的所有权转移给另一个赋值运算符。 |
|
auto_ptr类型的取消引用对象的运算符。 |
|
允许的成员访问运算符。 |
|
从一个类型转换为另一个 auto_ptr 的 auto_ptr。 |
|
从 auto_ptr 到 auto_ptr_ref的强制转换。 |
要求
内存页眉:<memory>
命名空间: std