this指针转化为智能指针的正确方式

在C++类内部的非静态成员函数内部,是不能将this指针强制转化成shared_ptr,这样的行为是非常危险的,因为this指针是普通指针,而将普通指针强制转化成智能指针是非常非常非常危险的,有可能导致内存被意外释放。

在class内部,获得this指针的shared_ptr,需要class继承std::enable_shared_from_this,示例代码如下:

输出结果如下:

 

 

分享到:

发表评论