本当に疲れているのかわかりませんが、このコードは、単体テストの実行中に (ロジック?) 問題を引き起こしています。次のコードに何か問題がありますか?
bool Date::operator <= (const Date& d) const {
if (this != &d) {
if (day > d.day)
return false;
if (hour > d.hour)
return false;
if (minute > d.minute)
return false;
if (second > d.second)
return false;
}
return true;
}
テストのためだけに、この(醜い)バージョンに置き換えたところ、すべてのテストに合格しました...
bool Date::operator <= (const Date& d) const {
if (this != &d) {
long a = (86400 * day) + (3600 * hour) + (60 * minute) + second;
long b = (86400 * d.day) + (3600 * d.hour) + (60 * d.minute) + d.second;
return a <= b;
}
return true;
}
誰でも助けることができますか?ありがとう!