kostenloser Webspace werbefrei: lima-city


std::cout << überladen

lima-cityForumProgrammiersprachenC/C++ und D

  1. Autor dieses Themas

    the-live

    the-live hat kostenlosen Webspace.

    Hallo

    wie kann ich den <<-operator von cout überladen, z.B für eine eigene Klasse??

    Gruß
    the-live
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Ich würd mal so sagen:

    In Class (TESTTEST):
    private:
      int test_;
    
    public:
      operator TESTTEST() {return test_;}


    Aufruf:

    TESTTEST instanz;
    cout << instanz << endl;
    oder
    cout << (TESTTEST) instanz << endl;


    soweit ich das in erinnerung habe funkt das so... hat auch den vorteil, dass das ganze ding auch für typkonvertierungen hergenommen wird. Man muss auch keinen Rückgabetyp angeben, wir automatisch genommen!

    MfG

    David


    Beitrag geändert: 18.4.2008 15:33:18 von ldlove
  4. kochmarkus

    Co-Admin Kostenloser Webspace von kochmarkus

    kochmarkus hat kostenlosen Webspace.

    Eher so:

    class MyClass
    {
      private:
      int MyValue;
    
      public:
      MyClass(int Value) { MyValue=Value; }
      ~MyClass() { }
      friend ostream& operator<<(osream&, const MyClass&)
    };
    
    ostream& operator<<(ostream& os, const MyClass& mc)
    {
      os << mc.MyValue;
      return os;
    }

    und die Verwendung:
    MyClass obj(4);
    
    cout << obj << endl;  //gibt \"4\" und eine neue zeile aus.


    Ist allerdings ziemlich lang her das ich das lezte mal C++ programmiert hab.


    Beitrag geändert: 20.4.2008 0:00:24 von kochmarkus


    Beitrag geändert: 20.4.2008 0:06:49 von kochmarkus
  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!