作为整数传递的参数
Argument being passed as integer?
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’
这就是为什么最好使用 std:我没有在头文件上做"使用命名空间 std;",所以它不是 包括矢量,这导致了很多奇怪的错误
: 而不是使用命名空间 std。它使您的代码更易于理解,并且如果将游戏或敌人添加到 STL,您的代码仍将编译(我知道不太可能(。 如果您真的愿意,它将允许您添加自己的矢量版本,最小值/最大值等(不过我不推荐它(。
相关文章:
- 如何反转整数参数包
- 带有整数的变量参数列表
- Constexpr 可变参数模板,用于对无符号整数进行重新排序
- 从函数参数 [C++] 复制整数数组
- 使用可变参数函数将整数和/或整数数组放入单个 int 数组中
- 可变参数模板:将整数参数完美转发到 lambda
- (C/C++)fscanf_s从txt文件以字符形式读取数组时缺少整数参数错误
- 如何修改此函数,以便如果函数的参数是特定结构,则返回具有较大整数的结构?
- C++一个具有 2 个参数(___ _____,整数长度)的函数中的快速排序
- 切片整数参数包
- 将整数数组作为参数传递C++错误
- 反转模板(整数)参数的顺序
- C++ 构造函数参数:字符串、整数、整数、整数
- 如何避免字符串到整数转换情况下的无效参数异常
- 来自整数的variadic模板参数
- 模板参数中具有特殊整数的模板
- 在 lambda 中捕获参数包时,某些整数会丢失其值
- 整数模板参数和子函数调用
- 操作员与整数模板参数专业化过载
- 将方法指针作为整数参数发送到C#的C 方法