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>();

原文地址:https://www.cnblogs.com/fyter/p/cpp_shared_ptr.html