c++趣味之shared_ptr额外好处

shared_ptr(sp)额外好处是什么?即使被转为基类,析构函数也可以正常执行。

 

已知两个类

class foo{};

class bar:foo{public:~bar(){}};

 

先来看不用sp的情况。

bar* obj = new bar();

delete obj;

这样foo没有虚析构函数,删除foo对象时是不会调用到bar对象的析构函数的。

 

如果用sp,就可以正常析构了。

sp<foo> obj = make_shared<bar>();

posted @ 2017-09-01 11:34  fyter  阅读(517)  评论(0)    收藏  举报