ostream überladen
-
ich muss den << überladen
das hab ich bis jetzt
steht in meiner klasseunter publicostream & operator<< (ostream &);
address::print()
{}
da muss das rein irgendwie denn mit der funktion soll dasdann aufgerufen werden
wiemach ich das?! (die classe hat 4string variablen die ausgegeben werden sollen die classe heist addressUND WENN JETZT WIEDER IRGENDWER MIT RTFM KOMMT UND NEN LINK ZU IRGENDEINER SCHEISS POSTED DIE DAMIT NIX ZUTUN HAT KRIG ICH NEN AUSFLIPPER UND MUSS DEN LEIDER TÖTEN
danke im voraus gruß Rio
-
Wie wäre es mit
// Ausgabestream überladen ostream& operator<<(ostream& os) { os << String1 << endl; os << String2 << endl; return os; }
-
Der operator<< darf in diesem Fall kein Member sein.
ostream& operator<< (ostream& s, const adresse& a) { s << a.wasauchimmer; return s; }
-
Hier mal ein komplettes Beispiel:
#include <iostream.h> class Geld { int euro; int cent; public: Geld(int e=0, int c=0):euro(e), cent(c) {} int getEuro() { return euro; } void setEuro(int x) { euro = x; } int getCent() { return cent; } void setCent(int x); void print() { cout << euro << "." << cent << endl; } friend Geld operator+(Geld a, Geld b); friend Geld operator-(Geld a, Geld b); friend ostream& operator<<(ostream& os, Geld& m); friend istream& operator>>(istream& is, Geld& m); }; /* Abfrage: * euro = euro / 100 * cent = euro % 100 */ Geld operator+(Geld a, Geld b) { Geld c; c.euro = a.euro + b.euro; c.cent = a.cent + b.cent; c.euro += c.cent / 100; c.cent = c.cent % 100; return c; } Geld operator-(Geld a, Geld b) { Geld c; c.euro = a.euro - b.euro; c.cent = a.cent - b.cent; return c; } void main() { Geld fritz(10,10); Geld hans(20,10); Geld wir; wir = hans - fritz; wir.print(); cin >> wir; // Mit überladendem Eingabestream cout << wir << endl; // Mit überladendem Ausgabestream } // Ausgabestream überladen ostream& operator<<(ostream& os, Geld& m) { os << m.euro << " Euro und " << m.cent << " Cent"; return os; } // Eingabestream überladen istream& operator>>(istream& is, Geld& m) { cout << "Euro: "; is >> m.euro; cout << "Cent: "; is >> m.cent; return is; }
Edit by SideWinder: Aus CODE-Tags CPP-Tags gemacht und damit das Syntax-Coloring aktiviert