父类使用enable_shared_from_this
class Test : public enable_shared_from_this<Test>
{
public:
std::shared_ptr<Test> getPtr(){
return (shared_ptr<Test>)shared_from_this();
}
Test();
};
子类使用enable_shared_from_this
class SubTest : public Test
{
public:
std::shared_ptr<Test> getPtr(){
return dynamic_pointer_cast<SubTest>(shared_from_this());
}
SubTest();
};
模板使用enable_shared_from_this
template <class DH>
class Test:public std::enable_shared_from_this<Test<DH>>
{
public:
std::shared_ptr<Test<DH>> getPtr(){
return std::enable_shared_from_this<Test<DH>>::shared_from_this();
}
Test(){}
};