缓存对象

caching objects

本文关键字:对象 缓存      更新时间:2023-10-16

我有一个std::vector<Character*>,它将包含几个不同的派生类Character,为了这个问题的目的,我只称之为Enemy1Enemy2Player。我见过其他情况,有人有一个数组,例如 Character characters[30] 但由于我需要多态性,我认为这对我不起作用(我可能是错的)。

本质上,我的问题是实现,如何以这种方式设置/缓存多个字符以供重用?我正在研究这个(http://gameprogrammingpatterns.com/object-pool.html),我不确定向量是否可以以相同的方式工作。例如,如果向量中的一个对象已使用 new Enemy1() 实例化,我以后是否可以覆盖它并将其设置为 new Enemy2() ?我应该为每种敌人类型设置单独的矢量/数组吗?

可以从std::vector<Character*>访问您的角色。但是,要为许多可能的字符类型创建数据池,通常需要单独的向量*。

看看我最近问的这个相关问题。我得到了这篇文章的参考,你可能会觉得有用。

*注意:我相信,通过一些技巧,可以将各种类型存储在单个向量中,只要它们在内存中都具有相同的大小。