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.


Anmelden zum Antworten