cplusplus
.com
教程
参考
文章
论坛
C++
教程
参考
文章
论坛
参考
C 库
<cassert> (assert.h)
<cctype> (ctype.h)
<cerrno> (errno.h)
C++11
<cfenv> (fenv.h)
<cfloat> (float.h)
C++11
<cinttypes> (inttypes.h)
<ciso646> (iso646.h)
<climits> (limits.h)
<clocale> (locale.h)
<cmath> (math.h)
<csetjmp> (setjmp.h)
<csignal> (signal.h)
<cstdarg> (stdarg.h)
C++11
<cstdbool> (stdbool.h)
<cstddef> (stddef.h)
C++11
<cstdint> (stdint.h)
<cstdio> (stdio.h)
<cstdlib> (stdlib.h)
<cstring> (string.h)
C++11
<ctgmath> (tgmath.h)
<ctime> (time.h)
C++11
<cuchar> (uchar.h)
<cwchar> (wchar.h)
<cwctype> (wctype.h)
容器
C++11
<array>
<deque>
C++11
<forward_list>
<list>
<map>
<queue>
<set>
<stack>
C++11
<unordered_map>
C++11
<unordered_set>
<vector>
输入/输出
<fstream>
<iomanip>
<ios>
<iosfwd>
<iostream>
<istream>
<ostream>
<sstream>
<streambuf>
多线程
C++11
<atomic>
C++11
<condition_variable>
C++11
<future>
C++11
<mutex>
C++11
<thread>
其他
<algorithm>
<bitset>
C++11
<chrono>
C++11
<codecvt>
<complex>
<exception>
<functional>
C++11
<initializer_list>
<iterator>
<limits>
<locale>
<memory>
<new>
<numeric>
C++11
<random>
C++11
<ratio>
C++11
<regex>
<stdexcept>
<string>
C++11
<system_error>
C++11
<tuple>
C++11
<type_traits>
C++11
<typeindex>
<typeinfo>
<utility>
<valarray>
<memory>
类
allocator
C++11
allocator_arg_t
C++11
allocator_traits
auto_ptr
auto_ptr_ref
C++11
bad_weak_ptr
C++11
default_delete
C++11
enable_shared_from_this
C++11
owner_less
C++11
pointer_traits
raw_storage_iterator
C++11
shared_ptr
C++11
unique_ptr
C++11
uses_allocator
C++11
weak_ptr
枚举类
C++11
pointer_safety
函数
C++11
addressof
C++11
align
C++11
allocate_shared
C++11
const_pointer_cast
C++11
declare_no_pointers
C++11
declare_reachable
C++11
dynamic_pointer_cast
C++11
get_deleter
C++11
get_pointer_safety
get_temporary_buffer
C++11
make_shared
return_temporary_buffer
C++11
static_pointer_cast
C++11
undeclare_no_pointers
C++11
undeclare_reachable
uninitialized_copy
C++11
uninitialized_copy_n
uninitialized_fill
uninitialized_fill_n
对象
C++11
allocator_arg
auto_ptr
auto_ptr::~auto_ptr
auto_ptr::auto_ptr
成员函数
auto_ptr::get
auto_ptr::operator->
auto_ptr::operator*
auto_ptr::operator=
auto_ptr::operator
auto_ptr::release
auto_ptr::reset
参考
<memory>
auto_ptr
类模板
<memory>
std::
auto_ptr
template <class X> class auto_ptr;
自动指针 [已弃用]
注意:
此类模板在 C++11 中已被弃用。
unique_ptr
是一个具有类似功能的新工具,但具有更高的安全性(无虚假复制赋值)、增加了功能(
deleters
)和对数组的支持。有关更多信息,请参阅
unique_ptr
。
此类模板为指针提供了一个有限的
垃圾回收
机制,允许在
auto_ptr
对象本身被销毁时自动销毁其指向的元素。
auto_ptr
对象具有
拥有
分配给它们的指针的特性:一个
auto_ptr
对象拥有一个元素时,负责销毁它指向的元素并在其自身被销毁时释放分配给它的内存。析构函数通过调用
operator delete
自动完成。
因此,不应有两个
auto_ptr
对象“拥有”同一个元素,因为两者最终都会尝试销毁它们。当两个
auto_ptr
对象之间发生赋值操作时,会发生
所有权
转移,这意味着失去所有权的对象的指针被设置为不再指向该元素(它被设置为
空指针
)。
模板参数
X
被管理对象的类型,别名为成员类型
element_type
.
成员类型
以下别名是...的成员类型
auto_ptr
.
成员类型
定义
说明
element_type
类模板参数(
X
)
被管理对象的类型
成员函数
(构造函数)
构造 auto_ptr 对象
(public 成员函数)
(析构函数)
销毁 auto_ptr
(public 成员函数)
get
获取指针
(public 成员函数)
operator*
解引用对象
(public 成员函数)
operator->
解引用对象成员
(public 成员函数)
operator=
释放并复制 auto_ptr
(public 成员函数)
release
释放指针
(public 成员函数)
重置
解分配对象并设置新值
(public 成员函数)
(转换运算符)
转换运算符
(public 成员函数)