Problem beim Ueberladen von operator>>
-
Hi... ich hab ein ziemlich seltsames Problem und absolut kA was denn eigetnlich falsch ist...
Folgender Code:
class Rational { // .... friend std::istream& operator>>(std::istream&, Rational&); // .... }; std::istream& operator>>(std::istream& stream, Rational& rational) { stream >> rational.factor >> rational.denominator; return stream; }
Und folgende Fehlermeldungen des GCC (3.3.1)
D:\code\Allegro\rational\Rational.cpp In function `std::istream& operator>>(std::istream&, Rational&)': D:\code\Allegro\rational\Rational.cpp no match for 'operator>>' in 'stream >> rational->Rational::factor' error D:\code\Allegro\rational\Rational.cpp:53 candidates are: std::istream& operator>>(std::istream&, Rational&)
Ich seh den Fehler nicht
-
Hm, sieht eigentlich alles richtig aus. Was für einen Typ hat "factor" ?
-
ok, Fehler gefunden... ich hab <iosfwd> anstelle von <iostream> inkludiert
Trotzdem komisch, operator<< konnt ich problemlos kompilieren
-
Gutes Vorbild für solche Klassen: http://www.gotw.ca/gotw/004.htm
boost:rational gibt es übrigens auch, ist am einfachsten.