friend funktion



  • Hallo,

    friend funktionen einer Klasse sind doch ganz normale funktionen
    wie wir es aus der prozeduralen Programmierung kennen ??

    Ist doch ein Widerspruch zur objektorientierten Denkweise .

    Danke 🙂


  • Administrator

    1. In C++ programmiert man nicht nur und ausschliesslich, bzw. völlig vernarrt, objektorientiert. Man mischt eher die Konzepte ein wenig.
    2. friend Funktionen sind nicht ganz normale Funktionen, sondern sie haben auch noch Zugriff auf die privaten Daten einer Klasse. Sie werden meistens dazu eingesetzt um Dinge zu vereinfachen oder verschönern. Beispielsweise Operatoren oder eine getPointer Funktion für SmartPtr.
    3. Freie non friend non member Funktionen (also die ganz normalen Funktionen, ohne jeglichen internen Zugriff auf die Klasse oder Zugehörigkeit zu einer Klasse), sind member Funktionen vorzuziehen, wenn man ihre Funktionalität über die aktuellen member Funktionen der Klasse realisieren kann. Dies erhöht sogar die Objektorientierung. Dadurch haben nämlich weniger Funktionen zugriff auf die gekapselten Daten, wodurch die Kapselung stärker wird und dadurch eben auch die Objektorientierung.

    Grüssli


Anmelden zum Antworten