0

我有一个全球地图来存储智能指针。其他类通过键获取这些指针。

他们将使用键作为成员变量:int USING_POINTER_KEY。

所以我可以在“getGlobalPointer”中定义:通过键“USING_POINTER_KEY”从地图中获取指针。

有用!我有足够的理由以这种方式存储我的指针。没关系。

我的问题是:如何教我的全局地图自动删除课程不再使用的条目?

我认为引用计数。但我不确定如何...

4

1 回答 1

0

这种包罗万象的计划是一个危险信号。

但是,您可以使用智能指针 ( std::shared_ptr) 创建自定义删除器。只需将函数指针作为第二个参数传递给shared_ptr构造函数。该函数可以从全局表中删除指针。

智能指针已经是引用计数的实现,所以你只想添加一个回调。

于 2013-05-08T05:41:44.717 回答