使用指针

时间:2015-05-11 17:21:25

标签: c++

我想知道以下情况是否属实,因为我正努力在我正在进行的小游戏中重置功能。<​​/ p>

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

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();
}

我的问题是使用resetGame方法。我清空了指针数组,然后替换下面的对象。现在,鉴于它们是指向内存块的指针,并且原始对象被替换,原始内存是否会泄漏?我应该先删除数据吗?我知道删除与new一起使用,但我不确定编译器是否会为我清除它。

感谢。

1 个答案:

答案 0 :(得分:3)

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