Ich versuche, die add_day
Funktion Arbeit zu machen, aber ich bin ein paar Probleme haben. Beachten Sie, dass ich keine Änderungen an der struct
vornehmen kann (es ist sehr simpel), weil der Zweck der Übung darin besteht, das Programm mit dem zu arbeiten, was gegeben wird. Der Code istKlasse Problem, das Hinzufügen eines Tages
#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();
}
Ich bin ein Linker-Fehler erhalten, die undefined reference to Date::Date(int,int,int)
sagt, aber ich kann nicht herausfinden, was los ist. Es scheint, als ob es etwas mit dem Date
Konstruktor zu tun hat, aber ich bin mir nicht sicher was.
Ich würde auch für morgen in einer Codezeile hinzufügen, wie
Date tomorrow = today.add_day(1);
aber ich habe das Gefühl, dass da add_day ein Hohlraumtyp ist, wird ein Konvertierungs Problem sein.
Jede Hilfe wäre willkommen - danke.
P.S. Mach dir keine Sorgen über das Hinzufügen von Tagen am Ende des Monats. Es ist etwas, das später implementiert wird.
zurückkehren Generell würde kehren wir eine konstante Referenz statt einer Kopie, die gleiche Funktionalität, sondern mehr besonders effizient mit zeitaufwendigem Kopieren (weniger ein Problem hier). – DeusAduro