我正在尝试比较2个对象,如果它们匹配使用没有运气的运算符,则返回true。请帮助您使用此代码。我已尝试使用p.date extra但它无法正常工作
班级名称为DateC
bool DateC::operator-=(const DateC& p) const
{
// if() {return true;};
// return true;
};
assert( d -= DateC(1, 2, 2001) );
答案 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
注意:当然,您可以将==
替换为-=
,但对于想要使用它的人来说,这会有点扭曲。