Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 试图重载运算符++;我的约会课。仍在获取错误:无法增加类型为';日期';_C++_Oop_Operator Overloading - Fatal编程技术网

C++ 试图重载运算符++;我的约会课。仍在获取错误:无法增加类型为';日期';

C++ 试图重载运算符++;我的约会课。仍在获取错误:无法增加类型为';日期';,c++,oop,operator-overloading,C++,Oop,Operator Overloading,我已经写了一个日期类,我正在尝试在这个类上练习操作符重载。我试图重载操作符+++以增加一天,但我仍然得到这个错误:无法增加“Date”类型的值! 下面是我重载此运算符的方法: Date Date::operator++() { day++; if (day > days_of_month(month, year)) { day = 1; month++; if (month > 12) { month = 1; year++;

我已经写了一个日期类,我正在尝试在这个类上练习操作符重载。我试图重载
操作符+++
以增加一天,但我仍然得到这个错误:无法增加“Date”类型的值! 下面是我重载此运算符的方法:

Date Date::operator++()
{
  day++;
  if (day > days_of_month(month, year)) {
    day = 1;
    month++;
    if (month > 12) {
      month = 1;
      year++;
    }
  }
  return *this;
}
这是每月的
天数
方法:

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();
}
int天/月(int m,int y)
{
如果(m<7)
返回31;
否则,如果(m<12)
返回30;
else如果(m==12)
返回是闰年(y)?30:29;
其他的
中止();
}

增量有两种类型-增量后和增量前。你超载的是后者,你试图使用前者

通常你为一个班提供两个。看起来是这样的:

Date& Date::operator++() // for ++d
Date Date::operator++(int) // for d++

增量有两种类型-增量后和增量前。你超载的是后者,你试图使用前者

通常你为一个班提供两个。看起来是这样的:

Date& Date::operator++() // for ++d
Date Date::operator++(int) // for d++

你从哪里得到的错误?您能否创建一个用于向我们显示错误的文件,并用注释等标记错误的位置?另外,请将完整的错误复制粘贴到问题中,包括任何可能的信息注释。顺便说一下,这是一个非常奇怪的每月天数定义。你用的是什么日历?@Someprogrammerdude当我在主功能中使用日期d(30,10,1397);然后是d++。我得到这个错误:不能增加类型为“Date”的值。这正是我收到的错误信息,我使用的是太阳能日历。哦,你的意思是?@Someprogrammerdude是的,我是说这个;)你从哪里得到的错误?您能否创建一个用于向我们显示错误的文件,并用注释等标记错误的位置?另外,请将完整的错误复制粘贴到问题中,包括任何可能的信息注释。顺便说一下,这是一个非常奇怪的每月天数定义。你用的是什么日历?@Someprogrammerdude当我在主功能中使用日期d(30,10,1397);然后是d++。我得到这个错误:不能增加类型为“Date”的值。这正是我收到的错误信息,我使用的是太阳能日历。哦,你的意思是?@Someprogrammerdude是的,我是说这个;)