shared_from_this()的用途
资源对象的成员方法(不包括构造函数和析构函数)需要获取指向对象自身,即包含了this指针的shared_ptr
使用原因
1.把当前类对象作为参数传给其他函数时,为什么要传递share_ptr呢?直接传递this指针不可以吗?
一个裸指针传递给调用者,谁也不知道调用者会干什么?假如调用者delete了该对象,而share_tr此时还指向该对象。
2.这样传递share_ptr可以吗?share_ptr <this>
这样会造成2个非共享的share_ptr指向一个对象,最后造成2次析构该对象。
使用示例
#include<iostream>
#include<memory>
using namespace std;
class Base : public std::enable_shared_from_this<Base>
{
private:
/* data */
public:
Base(/* args */){
cout << "constructor.."<< endl;}
~Base(){
cout

本文详细介绍了shared_from_this()函数的用途及应用场景,探讨了如何通过该函数安全地从类对象中获取shared_ptr,避免内存管理错误。同时,提供了具体的代码示例来展示其正确使用方法。
最低0.47元/天 解锁文章
1037

被折叠的 条评论
为什么被折叠?



