std:: auto_ptr
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
定义于头文件
<memory>
|
||
|
template
<
class
T
>
class
auto_ptr
;
|
(1) |
(C++11 起弃用)
(C++17 中移除) |
|
template
<>
class
auto_ptr
<
void
>
;
|
(2) |
(C++11 起弃用)
(C++17 中移除) |
auto_ptr
是一种智能指针,用于管理通过
new 表达式
获取的对象,并在
auto_ptr
自身被销毁时删除该对象。它可用于为动态分配的对象提供异常安全保证,将动态分配对象的所有权传递给函数,以及从函数返回动态分配的对象。
复制
auto_ptr
会复制指针并将所有权转移给目标:
auto_ptr
的复制构造和复制赋值都会修改其右侧参数,且“副本”与原始对象并不等价。由于这些非常规的复制语义,
auto_ptr
不可被置于标准容器中。
std::unique_ptr
是处理此类及其他场景的更优选择。
(since C++11)
element_type
,但不包含任何成员函数。
文档中多次提及一个额外的类模板
auto_ptr_ref
。这是一个实现定义的类型,用于持有对
auto_ptr
的引用。实现允许为该模板提供不同名称,或以其他方式实现返回该类型或接受该类型作为参数的函数。
目录 |
成员类型
| 成员类型 | 定义 |
| element_type | T |
成员函数
创建新的
auto_ptr
(公开成员函数) |
|
销毁
auto_ptr
及其管理的对象
(公开成员函数) |
|
从另一个
auto_ptr
转移所有权
(公开成员函数) |
|
|
将管理的指针转换为指向不同类型的指针
(公开成员函数) |
|
观察器 |
|
|
返回指向被管理对象的指针
(公开成员函数) |
|
|
访问被管理的对象
(公开成员函数) |
|
修改器 |
|
|
替换被管理的对象
(公开成员函数) |
|
|
释放对被管理对象的所有权
(公开成员函数) |
|