我为!=
制作了算子PairXY operator != (PairXY a, PairXY b) {
PairXY res(a.x != b.x, a.y != b.y);
return res;
}
我想在这个循环中使用它:
while (l.b!=l.a){}
但它给了我这个错误:无法将'operator!=(l.Line :: b,l.Line :: a)'转换为'bool',我尝试将运算符的PairXY更改为bool,但它仍然没有没帮忙。
答案 0 :(得分:4)
bool operator!=(PairXY a,PairXY b){...}
答案 1 :(得分:2)
返回类型应为bool
:
bool operator != (const PairXY & a, const PairXY & b);
另外,最好使参数const
参考,如上所示。
答案 2 :(得分:1)
你想返回一对(可能)数字,还是一个布尔值?
通常,当任何组件成对不同时,元组与数学不同(数学上)。所以我会编写类似
的代码bool operator != (PairXY a, PairXY b) { return a.x != b.x || a.y != b.y; }
但也许你想要别的东西(但是,我不会称之为!=
)。
答案 3 :(得分:0)
这可能就是你的代码应该如何。
class PairXY {
public:
PairXY( int _x, int _y): x(_x),y(_y){}
bool operator != (const PairXY a) {
return(this->x != a.x && this->y != a.y);
}
private:
int x;
int y;
};
int main ( int argc, char** argv ) {
return 0;
}