kostenloser Webspace werbefrei: lima-city


Überladen Von Methoden?

lima-cityForumProgrammiersprachenC/C++ und D

  1. Autor dieses Themas

    myhead

    myhead hat kostenlosen Webspace.

    Hey Leute, ich hab mal ne Frage was ist das Überladen Von Methoden(Polymorphie)?
    und wie geht das? könnt ihr mir das mal an einem kleinen Beispiel erklären?(in C++)

  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. Überladen ist einfach nur mehrere Methoden(die den selben Namen haben) mit unterschiedlichen Parametern deklarieren:

    void foo(string a, int b)
    {
      for(int i = 0; i < b; i++)
        std::cout << a << std::endl;
    }
    
    void foo(string a)
    {
      std::cout << a << std::endl;
    }


    Ok, dämliches Beispiel, aber so sieht das dann ungefähr aus.
    Wenn ich jetzt foo(\"blubb\") aufrufe, wird natürlich die untere Funktion aufgerufen, weil ich ja keinen zweiten(int) parameter angebe.
    Bei foo(\"blubb\", 10) wird eben die erste aufgerufen, weil ich einen 2ten (int)Parameter angebe.




    Beitrag geändert: 30.3.2008 16:39:13 von planschkuh
  4. Autor dieses Themas

    myhead

    myhead hat kostenlosen Webspace.

    ah cool danke^^

    jetz hab ichs auch verstanden^^

  5. ah cool danke^^

    jetz hab ichs auch verstanden^^


    du musst aber eine kleine regel beachten: die überladenen Funktionen müssen sich in der Anzahl der Übergabeparameter und/oder ein Übergabeparameter muss sich im Typ unterscheiden! Eine Unterscheidung anhand des return werter reicht nicht aus!

    Gruß
    the live
  6. the-live schrieb:

    du musst aber eine kleine regel beachten: die überladenen Funktionen müssen sich in der Anzahl der Übergabeparameter und/oder ein Übergabeparameter muss sich im Typ unterscheiden! Eine Unterscheidung anhand des return werter reicht nicht aus!

    Gruß
    the live


    Das kannst aber leicht umgehen. Falls du mal 2 methoden hast, die die selben übergabewerte hätten, kannst du ja einfach bei einem als dritten wert ein int irgendwas geben und da gibst ihm halt 0 oder sonstwas mit... dann werden Sie unterschieden...

    MfG

    David
  7. 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!