【发布时间】:2014-03-18 01:09:38
【问题描述】:
注意: 虽然这个问题与游戏没有直接关系,但我已经围绕游戏开发塑造了背景,以便更好地可视化与这个问题相关的场景。 em>
tl;dr: 快速创建同一类的对象是内存密集型、低效还是常见做法?
假设我们有一个“子弹”类 - 每次玩家“射击”时都会创建一个该类的实例 - 每秒 1 到 10 次。这些实例可能会在碰撞时(显然)被破坏。
这是一个糟糕的主意吗?一般的 OOP 在这里可以吗(即:class Bullet { short x; short y; } 等)还是有更好的方法来做到这一点? new 和 delete 是首选吗?
非常感谢任何输入。谢谢!
【问题讨论】:
-
有很多方法。在栈上分配比在堆上更快,如果你需要堆,你可以使用
std::vector::reserve -
这完全取决于您如何实例化它们...
-
最好的方法是什么,@delnan?
-
这取决于你如何使用它们,你需要什么以及你可以做出什么样的权衡...... ;-) 真的,没有一个最好的方法。我担心这个问题太宽泛了。