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 Funktion

    ostream& 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.html

    Und 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;
    }
    

Anmelden zum Antworten