为了账号安全,请及时绑定邮箱和手机立即绑定

‘Enable_Shared_From_this’的有用性是什么?

‘Enable_Shared_From_this’的有用性是什么?

C++
LEATH 2019-07-22 15:08:12
‘Enable_Shared_From_this’的有用性是什么?我跑过去enable_shared_from_this在阅读Boost.Asio示例时,在阅读了文档之后,我仍然不知道该如何正确地使用它。请有人给我一个例子和/或解释什么时候使用这个类是有意义的。
查看完整描述

3 回答

?
忽然笑

TA贡献1806条经验 获得超5个赞

这是我的解释,从一个螺母和螺栓的角度(顶部的答案没有与我‘点击’)。*注意,这是研究VisualStudio 2012附带的Shared_PTR和Enable_Shared_FROM_this的源代码的结果。也许其他编译器以不同的方式实现了Enable_Shared_FROM_this.*

enable_shared_from_this<T>增加一个私人weak_ptr<T>实例到T它持有“一次真正的参考计数“就.的情况而言T.

所以,当您第一次创建一个shared_ptr<T>在新的T*上,T*的内部WILE_PTR被重新计算为1。shared_ptr基本上回到这个weak_ptr.

T然后,在其方法中,调用shared_from_this获取shared_ptr<T>那,那个返回到相同的内部存储的引用计数。..这样,你总有一个地方T*的参考计数是存储的,而不是有多个shared_ptr不了解彼此的实例,每个实例都认为它们是shared_ptr负责点票。T当他们的参考数达到零时就删除它。


查看完整回答
反对 回复 2019-07-22
  • 3 回答
  • 0 关注
  • 522 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信