Operatoren << und >> ueberladen fuer cin, cout ...
-
Hi,
kann mir jemand sagen, wie man für eine Ausgabe mit cout
und eine Eingabe mit cin den Operator selbst ueberladen kann?Danke und viele Grüße
-
So in etwa:
class X { int test; ... friend std::ostream& operator <<(std::ostream& output, const X& rhs); friend std::istream& operator >>(std::istream& input, X& rhs); }; ostream& operator <<(ostream& output, const X& rhs) { return output << rhs.test; } istream& operator >>(istream& input, X& rhs) { return input >> rhs.test; }
-
Hallo nochmal,
vielen Dank erstmal für die schnelle Antwort!
Wenn ich die folgende Zeile eingebe, dann passt dem Compiler
ein Argument nicht! Ich bekomm die Meldung, dass dem Operator << ein
Argument zu viel übergeben wird! Das soll einer verstehen?!?!?
-----------
ostream& operator <<(ostream& output, const X& rhs) { ...
-----------Bin für jeden Tipp dankbar!
Viele Grüße
-
king2000 schrieb:
Wenn ich die folgende Zeile eingebe, dann passt dem Compiler
ein Argument nicht! Ich bekomm die Meldung, dass dem Operator << ein
Argument zu viel übergeben wird! Das soll einer verstehen?!?!?Wenn du den operator<< las Memberfunktion implementierst, dann bedenke, dass der this Zeiger als erstes Argument übergeben wird. Dies führt dazu, dass dein operator<< 3 Parameter übergeben bekommt.
Schau dir MaSTaHs Code an - dort ist der operator<< eine Funktion und nicht Member der Klasse.