创建一个非拥有的shared_ptr?

Cub*_*bic 6 c++ resourcemanager shared-ptr c++11

我对C++ 11很陌生,现在正试图通过避免直接使用指针来提高我的C++技能.我正在尝试编写一个精灵管理器,它跟踪以前加载的精灵并释放未使用的精灵.我正在尝试使用shared_ptr(指向位图的指针),但是管理器还必须保持shared_ptr来创建精灵 - 所以引用计数不会下降到0.我可以以某种方式声明"父"shared_ptr在我的经理非拥有所以它不算作参考(并仍然创建该shared_ptr的拥有副本)?

Thi*_*One 11

使用weak_ptr.这将解决您的问题.您不需要释放它们,因为它们将被自动释放.使用weak_ptr上的锁来获取实际的shared_ptr.

use_count还会为您提供当前的引用数量.