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