Streams



  • Hallo!

    Ich code schon länger C++, aber abgesehen von cout habe ich mit Streams eigentlich nie was zu tun. Nun will ich eine Klasse machen, die unter anderem ein File verwaltet. Dabei soll die Klasse selbst wie ein File zu verwenden sein. Also in Pseudocode:

    class outFile
    {
    private:
      ofstream file
    
    public:
      void operator<<(istream s)
      {
        file<<s;
      }
    };
    
    main()
    {
      outFile f();
      f<<"irgend ein text"<<endl;
    }
    

    Das obige funktioniert syntaktisch nicht. Wie macht man denn den operator<< richtig?

    Danke, lg



  • was ist denn die Fehlermeldung?

    Also so, kannst du schonmal keine Verkettung des << Operators machen, dazu brauchst du ein Rückgabewert, also ne Referenz auf ein ostream.
    Beispiel:

    f << "ein Text" << endl;
    

    Es wird f << "ein Text" ausgewertet.
    So wenn dein Operator nen Rückgabewert hat, gibt er wieder ein ostream-Objekt zurück, und dieses wird dann auf endl; angwendet.

    Hoffe konnte dir schonmal helfen.

    Gruß freeG




Log in to reply