比较2个对象,如果使用运算符,则返回true

时间:2013-06-16 23:51:36

标签: c++ comparison operator-keyword

我正在尝试比较2个对象,如果它们匹配使用没有运气的运算符,则返回true。请帮助您使用此代码。我已尝试使用p.date extra但它无法正常工作

班级名称为DateC

bool DateC::operator-=(const DateC& p) const
{
    // if() {return true;};
    // return true;
};
assert( d -= DateC(1, 2, 2001) );

1 个答案:

答案 0 :(得分:0)

假设你真的想要-=运算符,那么主要是:

const DateC & DateC::operator -=  ( const DateC& rhs) {

    this->day = ?;     // do something with rhs.day
    this->month = ?;   // do something with rhs.month 
    this->year = ?;    // do something with rhs.year 

    return *this;
}

但根据您问题的标题,您正在寻找==运营商:

另一个领导:

bool DateC::operator == ( const DateC &rhs ) const {

    if ((this->day != rhs.day) || 
        (this->month != rhs.month) || 
        (this->year != rhs.year))  {
        return false;
    }
    return true;
}

按如下方式使用:

bool ok = (DateC(1,2,2001) == DateC(11,2,2001));      // Returns false

注意:当然,您可以将==替换为-=,但对于想要使用它的人来说,这会有点扭曲。