我想知道如何在C ++中创建同一对象的多个实例。我有一个例子。假设我正在创建一个简单的动作游戏,我有一个名为“Bullet”的对象。如果我点击f.e.一个CTRL键,它会导致枪声。所以我创建了一个Bullet实例。当子弹击中某物或离开窗户时,实例就会死亡。但是,如果我有f.e.像机枪一样的东西。它可以连续发射许多子弹。所以我必须创建Bullet的许多实例,但我该怎么做呢?我应该在开始时制作像这样的指针
Bullet *pointer;
然后,当我想创建一个子弹的实例时,我在内存中为一个“子弹”分配一个空间。当我想创建下一个项目符号时,我会分配更多空间等等。但是当子弹“死亡”时,我在记忆中得到了死亡空间......
所以我不知道如何处理这种情况。我是OOP的新手。我已用C语言编程,现在我想通过游戏编程学习C ++(非常有趣):-)。谢谢你的答案!
答案 0 :(得分:2)
只需使用std::vector<Bullet> bullets
即可存储您的所有项目符号。无论如何,您将需要所有这些对象,std::vector
将:
shrink_to_fit
reserve
一定数量的元素,有效地创建一个空的对象池您可能还想尝试std::unordered_map
,它几乎可以插入和移除时间。