enable_shared_from_this、weak_ptr
enable_shared_from_this:让类成员函数可获得自身的shared ptr封装,通过shared_from_this/weak_from_this API;
注意:调用shared_from_this的前提是此对象本身就是shared_ptr封装的类型,可通过将构造函数设置为私有、并提供静态构造shared_ptr对象的函数来避免这类case,详见下方连接。
weak_ptr:弱引用,不影响shared_ptr的释放,同时通过lock API可:确认对象是否已被释放(未释放则能持有此对象的shared_ptr引用);
https://en.cppreference.com/w/cpp/memory/weak_ptr
https://en.cppreference.com/w/cpp/memory/enable_shared_from_this