当方法只接受一个参数时,如何比较两个对象?

时间:2013-11-28 09:31:06

标签: c++ class

因此,对于作业,我们需要创建一个名为Purse的类,它将代表硬币的集合,并从中添加功能。我是通过作业的大部分时间,但我对这个方法遇到了麻烦

的isEqual

此方法将确定两个Purse对象是否相等。它需要一个参数:一个Purse对象并返回一个布尔值。传递给此方法的参数是将在比较中使用的第二个Purse对象。

如果它们的值相等,则认为两个Purse对象是相等的。

请注意,我们向main提供了代码,并且必须提供类和方法的代码。

相关的主要部分看起来像这样:

cout << endl << endl
 << "purse5 == purse6 is " << boolalpha << purse5.isEqual( purse6 ) << noboolalpha << endl
 << "purse5 < purse6 is " << boolalpha << purse5.isLessThan( purse6 ) << noboolalpha << endl
 << "purse5 > purse6 is " << boolalpha << purse5.isGreaterThan( purse6 ) << noboolalpha << endl;

现在,如果方法接受了两个参数,我就不会有问题,因为我可以做类似的事情:

bool IsEqual(int x, int y)
{
return (x == y);
}

关键是,我迷失了,我不知道该怎么办,如果有人能够指出我正确的方向,我会非常感激。谢谢你的时间。

2 个答案:

答案 0 :(得分:4)

如果它是Purse的成员,您可以像这样使用它:

Purse p1, p2;
bool OK = p1.isEqual(p2);

实现通常依赖于实例和参数的成员。例如:

class Purse
{
 public:
  explicit Purse(int i) : i_(i) {}
  bool isEqual(const Purse& other) const
  {
    return i_ == other.i_;
  }
 private:
  int i_;
};

答案 1 :(得分:0)

在钱包课程中:

bool IsEqual(Purse a)
{
    return (*this == a);
}

称之为:

Purse a, b;
bool c = a.IsEqual(b);