gpt4 book ai didi

c++ - 创建一个非拥有的 shared_ptr?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:08:48 25 4
gpt4 key购买 nike

我是 C++11 的新手,现在正在努力通过避免直接使用指针来提高我的 C++ 技能。我正在尝试编写一个 Sprite 管理器来跟踪以前加载的 Sprite 并释放未使用的 Sprite 。我正在尝试为此使用 shared_ptr(指向位图的指针),但管理器还必须保留一个 shared_ptr 来创建 Sprite - 所以引用计数不会下降到 0。我能以某种方式声明“父”shared_ptr在我的经理中没有所有权,所以它不算作引用(并且仍然创建该 shared_ptr 的所有权拷贝)?

最佳答案

使用 weak_ptr .那会解决你的问题。您不需要释放它们,因为它们会自动释放。在 weak_ptr 上使用锁来获取实际的 shared_ptr。

use_count 还会为您提供当前的引用文献数量。

关于c++ - 创建一个非拥有的 shared_ptr?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11722050/

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