BITTE HILFE!Unterschied bei der Vererbung zwischen Überladen und Überlagern!BITTE HILFE!



  • Hallo,

    ich habe seit diesem Schuljahr erst Programmieren mit c++ und weiß eigentlich nicht so viel!...Jetzt müssen wir ein Referat halten und das Morgen...
    ihc habe das thema Unterschied zwischen Überladen und Überlagern mit einem kleinen Beispielsprogramm.
    Ich habe wirklich keine ahnung....habe auch stundenlang im Internet gesucht aber zu Überlagern steht leider nix!
    Ich hoffe erfahrene Progammierer können mir helfen....

    Und danke schon im Vorraus.....



  • Überladen: Ein Funktionsname taucht mehrfach im selben Scope auf. (da wählt der Compiler anhand der Parameterlisten, welche der Funktionen verwendet wird)

    Überlagern: Eine Funktion ersetzt eine gleichnamige Funktion des äußeren Scopes. (die überlagerte Funktion wird nicht mehr berücksichtigt, um das Ziel herauszufinden)

    class test1
    {
    public:
      int f();    // 1
      int f(int); // 2
    };
    
    class test2:public test
    {
    public:
      int f(char);// 3
    };
    
    test t;
    test2 t2;
    
    t.f(0);//ruft 2
    t2.f(0);//ruft 3
    

    Die Funktionen 1 und 2 sind Überladungen, Funktion 3 überlagert beide.



  • vielen vielen vielen Dank.....

    unter scope meinst du class oder?!...

    hmmm wie kann ich das kurze programm jetzt erweitern mit was für einem beispiel..?

    dankeschön wirklich



  • "Scope" ist allgemein der Gültigkeitsbereich eines Bezeichners - das kann eine class sein, aber auch z.B. ein Namensraum oder das Innere einer Funktion (OK, mangels lokaler Funktionen mußt du dir dort keine Gedanken über Überladung machen) oder einer Verbund-Anweisung.

    PS: Das da oben ist bereits ein Beispiel 😉


Anmelden zum Antworten