'operator>>' ist im Typ 'istream' für Argumente des Typs 'header' nicht implementiert



  • hallo leute

    die fehlermeldung im titel der threads macht mir gerade kopfzerbrechen

    hab folgende basisklasse mit in-out operatoren:

    class header { ... };
    std::istream& operator>>(std::istream &in, header &h);
    std::ostream& operator<<(std::ostream &out, const header &h);
    

    dann leite ich eine klasse davon ab und wieder mit in-out operatoren:

    class request_header : public header { ... };
    std::istream& operator>>(std::istream &in, request_header &rh);
    std::ostream& operator<<(std::ostream &out, const request_header &rh);
    

    in der cpp datei der klasse request_header dann die stream-operatoren:

    std::istream& operator>>(std::istream &in, request_header &rh)
    {
       ...
       in >> static_cast<header>(rh); // (1)
    
       return in;
    }
    
    std::ostream& operator<<(std::ostream &out, const request_header &rh)
    {
       ...
       out << static_cast<const header>(rh); // (2)
    
       return out;
    }
    

    bei (1) kommt die fehlermeldung.
    im operator<< macht er aber keinen fehler.
    sieht hier jemand woran das liegt ?

    meep meep


  • Mod

    in >> static_cast<header[b]&[/b]>(rh); // (1)
    


  • am besten ich stell mich mal ne runde in die ecke und schaem mich

    danke dir

    meep meep


Anmelden zum Antworten