C++智能指针enable_shared_from_this

enable_shared_from_this介绍

enable_shared_from_this其实是智能指针中的内容,它的作用就是用于在类的内部,返回一个this的智能指针。

对于enable_shared_from_this,初学者可能不明白它的使用场景和使用的必要性,可能有得童鞋们会问既然有了this这个指向自己的指针, 为什么还需要enable_shared_from_this这个东西呢,直接用this代替不就好了吗?

我们来看看以下代码例子,如果先不运行,你能看出什么问题吗?

#include 
class Person{
public:
    Person() = default;
    ~Person(){

    };
    std::shared_ptr getPtr(){
        return std::shared_ptr(this);
    }
};

int main() {
    std::shared_ptr person = std::make_shared();
    std::shared_ptr person1 = person->getPtr();
    std::cout