我还是C ++(一般编程)的新手,请原谅我这个问题是愚蠢的还是被多次提出来。 这是一个问题。让我们说在同一个类下有两个对象A和B.
e.g
class Fruit{
int apple;
int banana;
fruit(int x, int y){
apple=x;
banana=y;
}
}
Fruit A(1,1);
Fruit B(1,1);
如果我想检查来自对象A的内容是否与对象B相同,我是否必须比较从A到B的每个变量,或
if(Object A == Object B)
return true;
会做这个工作吗?
答案 0 :(得分:3)
if(Object A == Object B)
return true;
会做这个工作吗?不,它不会赢,它甚至不会编译
错误:不匹配'运营商==' (操作数类型是' Fruit'' Fruit')
您需要实施比较operator==
,例如
bool Fruit::operator==(const Fruit& rhs) const
{
return (apple == rhs.apple) && (banana == rhs.banana);
// or, in C++11 (must #include <tuple>)
// return std::tie(apple, banana) == std::tie(rhs.apple, rhs.banana);
}