class Game {
public:
void draw_string(const char *text, int x, int y, TTF_Font *font, SDL_Color color, bool center);
private:
void spawn_enemies(vector <Enemy*>& enemies);
};
我有一个类的定义,并spawn_enemies的定义如下:作为整数传递的参数?
void Game::spawn_enemies(vector <Enemy*>& enemies) {
if (rand() % difficulty == 0) {
Enemy *enemy = new Enemy(screen, zombie_image);
enemies.push_back(enemy);
}
}
然后我打电话spawn_enemies:
game.spawn_enemies(enemies);
我定义的敌人为:
vector<Enemy*> enemies;
任何想法,为什么我得到这个错误:
error: no matching function for call to ‘Game::spawn_enemies(std::vector<Enemy*>&)’
note: candidate is:
note: void Game::spawn_enemies(int)
note: no known conversion for argument 1 from ‘std::vector<Enemy*>’ to ‘int’
您将spawn_enemies()声明为私有 - 不知道如何将它作为Game的实例调用,就像它是公共方法一样?尝试公开。不知道为什么这个奇怪的错误虽然... – JTeagle 2012-03-09 18:53:23
我也试图宣布它为公共,但它仍然无法正常工作。事实上,我得到了同样的错误。 – 2012-03-09 18:59:17
粘贴*完整的错误*。三重检查你正在粘贴的代码,包括所有相关的位。 – 2012-03-09 19:00:19