用指针清理对象

Object cleanup with pointers

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

只想知道以下内容是否为真,因为我在正在处理的小型游戏中致力于重置功能。

所以如果我有这样的设置:

class Game {
public:
  Game(Ball b, Paddle one, Paddle two) : b(b), one(one), two(two) { }
  void initGame();
  void resetGame();
private:
  Ball b;
  Paddle one;
  Paddle two;
  std::vector<GameObject *> objects;
};
Game::initGame() {
  objects.push_back(&b);
  objects.push_back(&one);
  objects.push_back(&two);
}
Game::resetGame() {
  while (!objects.empty()) {
    objects.pop_back();
  }
  b = Ball();
  one = Paddle();
  two = Paddle();
  initGame();
}

我的问题是使用重置游戏方法。我清空了指针的数组,然后替换下面的对象。现在,鉴于它们是记忆的指针,并且原始对象被替换,原始内存是否泄漏了?我应该先删除数据吗?我知道DELETE与New结合使用,但我不确定编译器是否会为我清理。

谢谢。

否,这里没有泄漏,因为内存未动态分配。