c++,在class内部获得this指针的shared_ptr
在class内部,获得this指针的shared_ptr,需要class继承std::enable_shared_from_this,示例代码如下: #include #include class SharedTest :public std::enable_shared_from_this { public: SharedTest(int v) : std::enable_shared_from_this val(v) { std::cout << "SharedTest,val = " << val << std::endl; } void SelfShared() { auto self_ptr = shared_from_this(); std::cout << "SelfShared,val = " << val << ",use_count = " << self_ptr.use_count() << std::endl; } ~SharedTest() { std::cout << "~SharedTest,val = " << val << std::endl; } int val = 0; }; int main() { auto tt = std::make_shared tt->SelfShared(); return 0; } 输出结果而如下: SharedTest,val = 123 SelfShared,val = 123,use_count = 2 ~SharedTest,val = 123 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |