我有一张存储智能指针的全球地图。 其他类按键获取这些指针。
他们使用use键作为成员variabel:int USING_POINTER_KEY。
所以我可以在“getGlobalPointer”中定义:通过键'USING_POINTER_KEY'从地图获取指针。
有效!而且我有足够的理由以这种方式存储我的指针。没关系。
我的问题是:如何教我的全局地图自动删除类不再使用的条目?
我认为参考计数。但我不确定如何...
答案 0 :(得分:0)
这种包罗万象的计划是一个危险信号。
但是,您可以使用智能指针(std::shared_ptr
)创建自定义删除器。只需将函数指针作为第二个参数传递给shared_ptr
构造函数。该函数可以从全局表中删除指针。
智能指针已经是引用计数的实现,因此您只想添加一个回调。