shi*_*azy 0 c++ oop operator-overloading
我写了一个Date类,我试图在这个类上练习运算符重载.我试图重载operator++一天增加一天,但我仍然得到这个错误:不能增加'日期'类型的值!这是我重载此运算符的方法:
Date Date::operator++()
{
day++;
if (day > days_of_month(month, year)) {
day = 1;
month++;
if (month > 12) {
month = 1;
year++;
}
}
return *this;
}
Run Code Online (Sandbox Code Playgroud)
这是days_of_month方法:
int days_of_month(int m, int y)
{
if (m < 7)
return 31;
else if (m < 12)
return 30;
else if (m == 12)
return is_leap_year(y) ? 30 : 29;
else
abort();
}
Run Code Online (Sandbox Code Playgroud)
有两种类型的增量 - 后增量和预增量.你重载的是后者,你正在尝试使用前者.
通常你为一个班级提供两个.它看起来像这样:
Date& Date::operator++() // for ++d
Date Date::operator++(int) // for d++
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
191 次 |
| 最近记录: |