gpt4 book ai didi

c++ - 如何防止任何人窃取我的 shared_ptr?

转载 作者:可可西里 更新时间:2023-11-01 18:18:10 26 4
gpt4 key购买 nike

因此,我使用 boost::shared_ptr 来获得它提供的所有各种引用计数优势——显然是初学者的引用计数,还有复制、分配并因此存储在 STL 容器中的能力。

问题是,如果我只将它传递给一个“恶意”函数或对象,该对象可以保存 ptr,然后如果外部函数或对象没有很好地放弃其所有权,我将永远无法取消分配它.

最终,我尽量明确对象所有权。我通过让所有者保留对象的唯一 shared_ptr 来实现这一点,而“ guest ”对象仅将 weak_ptr 存储到对象。

我真的不想要 shared_ptr 的“共享”部分,但我必须使用 shared_ptr 才能生成 weak_ptr。我想使用 scoped_ptr,但它非常有限,因为您无法复制它。您不能将它存储在容器中,不能从中借出 weak_ptr,也不能将所有权转让给新的管理器。

解决方案是什么?

最佳答案

将其设为私有(private)并提供外观以执行任何需要的操作。没有人见过指针。我想那时你甚至不需要 shared_ptr。

关于c++ - 如何防止任何人窃取我的 shared_ptr?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2687849/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com