Я пытаюсь заставить работать функцию add_day
, но у меня возникли некоторые проблемы.Обратите внимание, что я не могу внести какие-либо изменения в struct
(это очень упрощенно), потому что цель упражнения - заставить программу работать с тем, что дано.Код:
#include "std_lib_facilities.h"
struct Date{
int y, m, d;
Date(int y, int m, int d);
void add_day(int n);
};
void Date::add_day(int n)
{
d+=n;
}
ostream& operator<<(ostream& os, const Date& d)
{
if(d.m<1 || d.m>12 || d.d<1 || d.d>31) cout << "Invalid date: ";
return os << '(' << d.y
<< ',' << d.m
<< ',' << d.d << ')';
}
int main()
{
Date today(1978,6,25);
today.add_day(1);
cout << today << endl;
keep_window_open();
}
Я получаю ошибку компоновщика, которая говорит undefined reference to Date::Date(int,int,int)
, но я не могу понять, что не так.Кажется, что это как-то связано с конструктором Date
, но я не уверен, что.
Я также хотел бы добавить в строку кода на завтра, как
Date tomorrow = today.add_day(1);
но у меня есть ощущение, что поскольку add_day является пустым типом, возникнет проблема с конверсией.
Любая помощь будет принята - спасибо.
PS Не беспокойтесь о добавлениидни в конце месяца.Это то, что будет реализовано позже.