c++ - 试图为我的日期类重载运算符 ++。仍然收到错误:无法增加“日期”类型的值
问题描述
我写了一个 Date 类,我试图在这个类上练习运算符重载。我试图重载operator++
以增加一天,但我仍然收到此错误:无法增加“日期”类型的值!这是我重载此运算符的方法:
Date Date::operator++()
{
day++;
if (day > days_of_month(month, year)) {
day = 1;
month++;
if (month > 12) {
month = 1;
year++;
}
}
return *this;
}
这是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();
}
解决方案
增量有两种类型——后增量和前增量。您重载的是后者,而您正在尝试使用前者。
通常你为一堂课提供这两个。它看起来像这样:
Date& Date::operator++() // for ++d
Date Date::operator++(int) // for d++
推荐阅读
- php - 从 API 获取信息的问题
- c# - C# SQL 查询返回记录和相关记录
- reactjs - 通过 props 反应路由侧边栏解决方案
- laravel - git ignore 尝试提交更改,即使它们已添加到 .gitignore
- qt - How to preload QDialog before it is shown?
- javascript - Column cannot be null by using Auth
- python - 使用 Pygsheets 查找单元格并更新同一列中的单元格
- node.js - Convenient way of mapping types in typescript
- ios - No visible @interface for 'RNCAsyncStorage' declares the selector
- r - Neat way to plot this correlation using ggplot2?