测试代码
#include <iostream>
#include <memory>
using namespace std;
class test
{
public:
test()
{
}
~test()
{
cout << "over" << endl;
}
public:
string name;
int age;
};
int main()
{
shared_ptr<test> a = make_shared<test>();
a->name = "haha";
a->age = 18;
test *jk = new test();
jk->name = "jkjk";
jk->age = 19;
a.reset(jk);
cout << a->name << " " << a->age << endl;
unique_ptr<test> plpl(new test());
plpl->name = "pmpm";
plpl->age = 21;
auto p = plpl.release();
cout<<p->name<<" "<<p->age<<endl;
delete p;
p=nullptr;
return 0;
}
运行结果
over
jkjk 19
pmpm 21
over
over