operatorüberladung meldet fehler



  • Hi!
    Ich habe einen kleine Klasse geschrieben, die eine übergebene Klasse mit dynamischer Liste in eine Datei schreiben soll:

    class Ausgabedatei
    {
          public:
                  Ausgabedatei(const char *dName, int Seed) : Dateiname(dName), seed(Seed)
                  {
                         AD.open(Dateiname, ios::out | ios::binary);
                  }
                  ~Ausgabedatei(){AD.close();}
    
                  Ausgabedatei& operator<<(CodierterText CT)
                  {
                         CT.liste.SetAnfang();
                         AD<<seed;
                         AD<<' ';
                         while (CT.liste.isValid())
                         {
                               AD<<CT.liste.get();
                               CT.liste.inc();
                         }
                         AD<<CT.liste.get();
    
                  }
    
          private:
                  Ausgabedatei(const Ausgabedatei&);
                  fstream AD;
                  const char *Dateiname;
                  int seed;
    
    }
    

    wenn ich diese Klasse includen will, kommt der folgende Fehler vom Compiler:

    expected unqualified-id at end of input
    expected `,' or `;' at end of input
    

    und zeigt auf die mit den Pfeil markierte Zeile

    AD<<CT.liste.get();
    
                  } <=
    
          private:
    


  • Kann ich nicht nachvollziehen, ich krieg mit deinem Code folgendes:

    prog.cpp:10: error: declaration of ‘operator<<’ as non-function
    prog.cpp:10: error: expected ‘;’ before ‘(’ token
    

    , vermutlich weil "CodierterText" dem Compiler völlig unbekannt ist.

    Siehe die zwei Links in meiner Signatur...



  • Schreib ein ; nach der schließenden geschweiften Klammer der Klassendeklaration hin.



  • Semikoloner schrieb:

    Schreib ein ; nach der schließenden geschweiften Klammer der Klassendeklaration hin.

    danke so hats geklappt 😃


Anmelden zum Antworten