この質問は、古いもの(それは並べ替えられます)のコピーと貼り付けのように見えますが、状況ははるかに異なって非常に難しいですあなたが私の小さな名声を殺す前に私のことを聞いてください。引数としてオブジェクトのベクトルのポインタを渡すよりはるかに異なっています
私は、オブジェクトを関数パラメータに格納してスキャンし、特定のオブジェクトを別の関数のパラメータに入れて、その特定のオブジェクトのすべての値を使用することに問題があります。
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
@Donnie私が問題を抱えていたプログラムのために、18人の敵と5人のプレーヤーがいました –