Problem mit Struktur
-
Warum funktioniert dieser Code nicht?
#include<iostream> using namespace std; struct Zeit{ int Stunden; int Minuten; int Sekunden; }; int main() { Zeit Uhrzeit = {10,5,2}; cout << "Die Uhrzeit ist:"<< Uhrzeit <<endl; return 0; }
-
weil es keinen überladenen operator<< für Zeit gibt.
-
Und wie schaffe ich das dann?????????????
-
Du könntest die Zeile mit der Ausgabe rausnehmen, wär das einfachste.
Oder in den einschlägigen C++ Büchern und Tutorials nachgucken, wie man den operator<< für selbstdefinierte Typen überlädt.
-
mach es als class .. dann entweder eine funktion innerhalb der klasse die die variablen mit cout ausgibt, oder mach das hier
http://www.volkard.de/vcppkold/operatoren_ausserhalb_von_klassen.html
-
ostream& operator<< (ostream &out, Zeit time) { out<<time.stunden<<":"<<time.minuten<<":"<<time.sekunden; return out; }
-
@ppc: versuchs mal mit nem durchgehenden Stiel. Mal das & am Typ, mal an der Variable, das ist irgendwie iritierend. Egal wie du es machst, machs einheitlich.
ostream & operator<< (ostream & out, const Zeit & time) { out<<time.stunden<<":"<<time.minuten<<":"<<time.sekunden; return out; }