c++ - 智能指针(~auto_ptr() 和 release() 不同)

标签 c++

我想知道 ~auto_ptr()release() 函数之间的区别。

是同一种方法,还是销毁和释放内存有区别?

最佳答案

auto_ptr::release()

将 auto_ptr 内部指针设置为空指针(表示它不指向任何对象)而不破坏 auto_ptr 当前指向的对象。它返回内部指针被设置为空之前的值。 在调用 release() 之后,auto_ptr 仍然可以指向另一个对象。

auto_ptr::~auto_ptr()

使用 delete 释放对象“指向”的内存块并销毁对象。\在调用 ~auto_ptr() 之后,auto_ptr 被销毁,不应被销毁进一步使用。

关于c++ - 智能指针(~auto_ptr() 和 release() 不同),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6009294/

相关文章:

c++ - std::initializer_list 值作为模板参数

c++ - 在 Swift 中定义显式泛型方法

c++ - 拆分临界区并两次锁定互斥量是否有助于提高性能?

c++ - 为什么会有 bool switch 语句的编译器警告?

c++ - boost::asio::acceptor 在 win7 上挂起

'//' 和 '///' 之间的 C++ 区别

c++ - 在条形图中输出负值,使用星号表示三个值的范围

c++ - 使用哨兵试验查找算法

c++ - 在 C++ 中定义一堆静态方法

c++ - 在 OpenGL : improving frames-per-second 中实例化数百万个对象