Unterschied zwischen public und friend Methoden ?
-
Hallo Forenbesucher,
kleine Frage an euch.
Wo genau ist der Unterschied zwischen einer public Methode oder einer friend Methode? Hab mir jetzt schon einiges durchgelesen aber irgendwie peil ich des ned.
class A{ private: int a; public: void ändern( int ); friend void ändern( int ); };In main kann ich doch beide Methoden benutzen?
Danke schon mal für die Antworten und sorry für die simple Frage
-
friend ergibt eigentlich nur im Zusammenhang mit protected/private Sinn, und erlaubt anderen Klassen sowie Funktionen auf private/protected Elemente einer Klasse zuzugreifen.
class XY { public: //... private: int a; }; //gehoert nicht zu XY int access_a(XY& obj) { return obj.a; //Fehler: XY.a ist private }class XY { public: //... private: friend void access_a(XY& obj); int a; }; //gehoert nicht zu XY int access_a(XY& obj) { return obj.a; //OK: access_a is friend. }
-
Das ist ein bisschen syntaktischer Zucker:
obj.mutate(); // vs. mutate(obj);Gruß
Don06