在使用boost库时,经常会遇到enable_shared_from_this,这个类有什么用呢,在c++ std里,也有这个类,先来看看std中关于enable_shared_from_this的解释:
派生自的对象enable_shared_from_this可以使用shared_from_this成员函数中的方法来创建与现有所有者共享所有权的实例的shared_ptr所有者。否则,如果使用this创建新的shared_ptr,则它与现有shared_ptr所有者不同,这可能导致无效引用或导致对象被多次删除。
这种解释可能有点难懂,来看一个例子, 下面有一个Test类,他的成员函数getptr使用this创建新的shared_ptr实例:
#include#include class Test { public: std::shared_ptr getptr() { //通过this来new一个新的shared_ptr return std::shared_ptr (this); } ~Test() { std::cout << "Test::~Test() called" << std::endl; } }; int main() { std::shared_ptr sp1(new Test()); std::shared_ptr sp2 = sp1-&



