我想知道以下情况是否属实,因为我正努力在我正在进行的小游戏中重置功能。</ 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一起使用,但我不确定编译器是否会为我清除它。
感谢。
答案 0 :(得分:3)
不,这里没有泄漏,因为内存没有动态分配。