C++11小结:使用智能指针的坑
作者:互联网
目录
unique_ptr
release 不会释放内存
release 只会放弃所有权,不会释放内存资源;
reset 既放弃所有权,还会释放内存资源(调用删除器)。如果有参数,还会接管参数对应的新资源。
#include <iostream>
#include <memory>
using namespace std;
class A
{
public:
A()
{
cout << "Create A object" << endl;
}
~A()
{
cout << "Destroy A object" << endl;
}
};
int main()
{
unique_ptr<A> p(new A);
p.release();
return 0;
}
运行结果:
Create A object
可以看到,并没有调用class A的析构函数。
注意到unique_ptr
如果想要释放内存,请调用reset
。
标签:11,释放,调用,C++,内存,release,unique,小结,ptr 来源: https://www.cnblogs.com/fortunely/p/16370208.html