enable_shared_from_this 含义
如果一个T类型的对象t,是被std::shared_ptr管理的,且类型T继承自std::enable_shared_from_this
,那么T就有个shared_from_this
成员函数,这个函数返回一个新的std::shared_ptr
的对象,也指向对象t
如果不这么做, 会出现什么问题,看下面一段代码
1 | struct obj{ |
上述场景是 对象希望获得管理自己的智能指针,但是直接通过成员函数返回一个shared_ptr
,造成了被管理对象的重复删除。