两个对象在同一个类下的比较

我仍然对C ++不熟悉(一般编程),并且如果这个问题很愚蠢或者被无数次问到,请原谅我。 这里有个问题。比方说,在同一个班上有两个对象A和B.

例如

  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;

会做这份工作吗?


if(Object A == Object B)
    return true;

会做这份工作吗? 不,它不会,它甚至不会编译

错误:'operator =='不匹配(操作数类型为'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); 
}
链接地址: http://www.djcxy.com/p/73773.html

上一篇: Comparison between two objects under the same class

下一篇: How to avoid mistakes in operator== implementations in C++?