überladen von Operatoren



  • hallo, ich versuche gerade den '<<' operator zu überladen, aber irgendwie funzt es nicht so richtig hier der quellcode:

    main.cpp:

    #include <iostream.h>
    #include <stdio.h>
    #include"obj.h"
    
    int main() {
    
         obj ob;
         ob.tv();
    
      getchar();
    }
    

    ojb.h:

    #ifndef obj_h
    #define obj_h obj_h
    #include<iostream>
    
    class obj {
          public:
    
             void tv() { tankvolumen = 2000;}
             friend ostream & operator << (ostream & out, obj &x);
    
          private:
    
               int tankvolumen;
    };
    #endif
    

    obj.cpp:

    #include "obj.h"
    #include<iostream>
    
    ostream & operator << (ostream &out, obj &x)
    {
    out << "Tankvolumen: " <<  x.tankvolumen;
    return out;
    }
    

    Wenn ich das Programm ausführe, erhalte ich keine Ausgabe... normalerweise müsste es ja "Tankvolumen: 2000" ausgeben.
    Woran könnte das liegen?

    Danke, Mathias



  • Wenn du die main noch cout << ob << endl; schreibst, tut es das vielleicht 😉



  • ups, das hab ich wohl vergessen 🤡

    danke 👍


Anmelden zum Antworten