同一类下两个对象的比较

时间:2015-05-15 00:37:31

标签: c++ comparison

我还是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;

会做这个工作吗?

1 个答案:

答案 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); 
}