今天遇到一个错误,是关于unique_ptr的get方法的,忽略了。
之前博客是这样写get方法的:
其中bar是一个智能指针,p是一个普通指针:
p = bar.get(); 后,bar并非被释放,也就相当于指针p和智能指针bar共同管理一个对象,所以就*p做的一切,都会反应到bar指向的对象上。
那么来看今天的代码:
#include<iostream>
#include<memory>
class Widget {
public:
Widget() { std::cout << "Widget::Widget()" << std::endl; }
virtual ~Widget() { std::cout << "Widget::~Widget()" <<