Methode anderer Klasse kopieren



  • Hallo,
    wie kann ich in einer Klasse eine Methode von einer fremden Klasse kopieren? Also ich will/brauch nicht alles vererben, sondern eben nur diese eine kleine Funktion. Danke!



  • copy & paste 🤡



  • Lagere eben nur diese eine Methode in eine Basisklasse aus.
    Damit ersparst du dir doppelten Code.

    Das kann aber auch danebengehen, wenn kein sachlogischer Zusammenhang zwischen Basisklasse und abgeleiteter Klasse besteht, wodurch die Vererbungsabsicht nicht mehr transparent ist. In so einem Falle ist es meiner Ansicht nach sogar besser den Code zu duplizieren.



  • SliderMaxx schrieb:

    Lagere eben nur diese eine Methode in eine Basisklasse aus.
    Damit ersparst du dir doppelten Code.

    Das kann aber auch danebengehen, wenn kein sachlogischer Zusammenhang zwischen Basisklasse und abgeleiteter Klasse besteht, wodurch die Vererbungsabsicht nicht mehr transparent ist.

    Für sowas ist normalerweise private Vererbung gedacht. Aber natürlich sollte man diese mit Vorsicht einsetzen.

    Vielleicht ist "delegation" das, was du suchst.

    class DieKlasseMitDerMethode
    {
    public:
        int DieMethode(){return 1;}
    };
    
    class DieAndereKlasse
    {
        DieKlasseMitDerMethode M;
    public:
        int DieMethode(){return M.DieMethode();}
    };
    

    Leider kannst du u.U. mit diesem Verfahren ne Menge Schreibarbeit extra haben. Dafür hat's einige andere Vorteile. Copy'n'paste ist imho die schlechteste Lösung.


Anmelden zum Antworten