【发布时间】:2017-05-19 05:49:39
【问题描述】:
这个问题看起来确实像一个旧问题的复制和粘贴(它有点像),但我向你保证,情况会大不相同,而且很难解释,所以在你谋杀我微不足道的名声之前,请听我说完.
我在将保存对象的向量放入函数参数时遇到问题,然后扫描它们并将特定对象放入另一个函数的参数中,然后该函数的参数将使用该特定对象的所有值。
例如,如果有玩家类和敌人类:
class player{
public:
int id;
string name;
};
class enemy{
public:
int eid;
string name;
};
这些类的一些对象存储在它们自己的向量中:
player example;
example.id = 1;
example.name = "example";
enemy badEnemy;
badEnemy.eid = 1;
badEnemy.name = "badEnemy";
vector<player> allPlayers;
vector<enemy> allEnemys; //I know the spellings wrong but am to reluctant to change it
allPlayers.push_back(example);
allEnemys.push_back(badEnemy);
然后有一个函数可以打印出对象名称:
int fightEnemy(player player, enemy enemy) {
cout << player.name << endl;
cout << enemy.name << endl;
return 0;
}
之后会有一个函数扫描向量中的特定对象并将它们插入到fightEnemy函数中
int enemyComboCheck(int id1, int id2, vector<Player>* allPlayers, vector<enemy>* allEnemys){
int iteratorForPlayer = 0;
id1 -= 1;
id2 -= 1;
for(int i = 0; i < 18; ++i){
if(id1 == allPayers[iteratorForPlayer].id && id2 == allEnemys[i].id) fightEnemy(allPlayers[iteratorForPlayer], allEnemys[i]);
//how do I pass the scanned object into the other function
}
return 0;
}
我想我的主要问题是如何通过向量将扫描的对象传递给另一个函数?我是否必须在其他函数中使用向量?
抱歉所有格式错误,无论如何谢谢!
【问题讨论】:
-
为什么循环中有 18 个?
-
@Donnie 这是我遇到问题的程序,有 18 个敌人和 5 个玩家
标签: c++ function class object vector