Problem mit Ausgabeoperator <<
-
Ich hab ein Ploblem mit der friend Deklaration in meiner Klasse:
class Fehler { private: string Meldung; int Fehlernummer; friend ostream& operator<<(ostream& os,const Fehler& f); }; ostream& operator<<(ostream& os,const Fehler& f) { os << f.Fehlernummer; return os; }Jedefalls gibt der VC++ 6.0 nur nen Fehler wegen des Zugriffs auf nen private Element aus.
Ich wollte aber, dass die Funktionostream& operator<<(ostream& os,const Fehler& f)eine friend-funktion von class Fehler ist.
Wer eine Erklärung dafür hat, dem wär ich dankbar!
-
versuch mal das friend-statement in den public-teil der klasse zu schreiben, also:
class Fehler { public: friend ostream& operator<<(ostream& os,const Fehler& f); private: string Meldung; int Fehlernummer; }; ostream& operator<<(ostream& os,const Fehler& f) { os << f.Fehlernummer; return os; }Grüße
FloFri
-
Ich hab was gefunden:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-39487.htmlUnd es geht!
class Fehler; // <-- WICHTIG ostream& operator<<(ostream& os,const Fehler& f); // <-- WICHTIG // Klasse Fehler zur Fehlerbehandlung class Fehler { //private: public: string Meldung; int Fehlernummer; public: friend ostream& operator<<(ostream& os,const Fehler& f); }; ostream& operator<<(ostream& os,const Fehler& f) { os << f.Fehlernummer; return os; }