Advantages/disadvantages of auto pointers(自动指针的优缺点)
本文介绍了自动指针的优缺点的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
与普通指针相比,使用自动指针(AUTO_PTR)有哪些优点和缺点?我听说它可以自动释放内存,但为什么不经常使用呢?
推荐答案
std::auto_ptr
的主要缺点是它具有过户语义。这使得std::auto_ptr
无法存储在STL容器中,因为这些容器在您存储或获取元素时使用复制构造函数。
std::auto_ptr
的另一个重要方面是它们不能用于PIMPL习语的使用。这是因为,它们需要包装类的析构函数的完整定义。有关更详细的讨论,请参阅c.l.c++.m上的this线程。
更新:过户
class Test {};
std::auto_ptr<Test> ap_test_1(new Test);
std::auto_ptr<Test> ap_test_2(new Test);
ap_test_2 = ap_test_1; // here ap_test_1's ownership is transferred i.e. ap_test_2 is the
// new owner and ap_test_1 is NULL.
有关这在STL算法使用的STL容器中使用时意味着什么的更多详细信息,请参阅Herb Sutter网站上的this线程。
这篇关于自动指针的优缺点的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:自动指针的优缺点


基础教程推荐
猜你喜欢
- 调用std::Package_TASK::Get_Future()时可能出现争用情况 2022-12-17
- 设计字符串本地化的最佳方法 2022-01-01
- 如何在 C++ 中处理或避免堆栈溢出 2022-01-01
- 如何定义双括号/双迭代器运算符,类似于向量的向量? 2022-01-01
- C++ 标准:取消引用 NULL 指针以获取引用? 2021-01-01
- 运算符重载的基本规则和习语是什么? 2022-10-31
- 什么是T&&(双与号)在 C++11 中是什么意思? 2022-11-04
- C++,'if' 表达式中的变量声明 2021-01-01
- C++ 程序在执行 std::string 分配时总是崩溃 2022-01-01
- 您如何将 CreateThread 用于属于类成员的函数? 2021-01-01