enable_shared_from_this
Posted osbreak
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了enable_shared_from_this相关的知识,希望对你有一定的参考价值。
enable_shared_from_this是一个模板类,定义于头文件<memory>
share_from_this()是返回指向该对象的share_ptr。
例子
1 #include <memory> 2 #include <iostream> 3 4 struct Good : std::enable_shared_from_this<Good> // 注意:继承 5 { 6 public: 7 std::shared_ptr<Good> getptr() { 8 return shared_from_this(); 9 } 10 ~Good() { std::cout << "Good::~Good() called" << std::endl; } 11 }; 12 13 int main() 14 { 15 // 大括号用于限制作用域,这样智能指针就能在system("pause")之前析构 16 { 17 std::shared_ptr<Good> gp1(new Good()); 18 std::shared_ptr<Good> gp2 = gp1->getptr(); 19 // 打印gp1和gp2的引用计数 20 std::cout << "gp1.use_count() = " << gp1.use_count() << std::endl; 21 std::cout << "gp2.use_count() = " << gp2.use_count() << std::endl; 22 } 23 system("pause"); 24 }
以上是关于enable_shared_from_this的主要内容,如果未能解决你的问题,请参考以下文章
关于boost中enable_shared_from_this类的原理分析
浅析C++智能指针和enable_shared_from_this 机制
evpp设计细节系列:利用 enable_shared_from_this 实现一个自管理的定时器
evpp设计细节系列:利用 enable_shared_from_this 实现一个自管理的定时器