‘Enable_Shared_From_this’的有用性是什么?

‘Enable_Shared_From_this’的有用性是什么?

我跑过去enable_shared_from_this在阅读Boost.Asio示例时,在阅读了文档之后,我仍然不知道该如何正确地使用它。请有人给我一个例子和/或解释什么时候使用这个类是有意义的。



LEATH
浏览 524回答 3
3回答

忽然笑

这是我的解释,从一个螺母和螺栓的角度(顶部的答案没有与我‘点击’)。*注意,这是研究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当他们的参考数达到零时就删除它。
打开App,查看更多内容
随时随地看视频慕课网APP