use*_*364 4 c++ compiler-errors
来自C++新手的另一个问题.
我收到编译器错误"不匹配'运算符=='"以获取以下代码块
void swap(Team t1, Player p1, Team t2, Player p2){
Player new_t1[11];
Player new_t2[11];
for(int i=0; i<11; i++){
new_t1[i] = t1.get_player(i);
new_t2[i] = t2.get_player(i);
if(new_t1[i] == p1){
new_t1[i] = p2;
}
if(new_t2[i] == p2){
new_t2[i] = p1;
}
}
cout << "Players swapped.";
}
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
Geo*_*sov 13
编译器不知道这两个玩家是什么意思相同.如果他们的名字相同,他们是否相同?还是他们的ID?您需要定义==运算符class Player
.
bool operator == (const Player &p1, const Player &p2)
{
if( / * evaluate their equality */)
return true;
else
return false;
}
Run Code Online (Sandbox Code Playgroud)
另外,我认为你的swap()
功能现在没有任何效果.您可能希望将其更改为通过引用接受Team
s和Player
s.
归档时间: |
|
查看次数: |
30022 次 |
最近记录: |