在class内部,获得this指针的shared_ptr,需要class继承std::enable_shared_from_this,示例代码如下:
#include <memory>
#include <iostream>
class SharedTest :public std::enable_shared_from_this<SharedTest>
{
public:
SharedTest(int v) : std::enable_shared_from_this<SharedTest>(),
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<SharedTest>(123);
tt->SelfShared();
return 0;
}
输出结果而如下:
SharedTest,val = 123
SelfShared, val = 123, use_count = 2
~SharedTest,val = 123
继续阅读与本文标签相同的文章
下一篇 :
Object-C 学习笔记 2
-
2019年9月份 阿里云域名优惠口令汇总
2026-05-18栏目: 教程
-
《安全说道》第三期 | 你家“大门”关好了吗?猪猪侠有话说
2026-05-18栏目: 教程
-
为什么支付宝有这么多“原生”技术牛人?
2026-05-18栏目: 教程
-
阿里巴巴小程序繁星计划 9月27日有话要说
2026-05-18栏目: 教程
-
为什么我会这么多技术,还这么难找工作
2026-05-18栏目: 教程
