friend-Methode
-
Kann man das hier mit friends lösen?
Klasse B soll die private Methode von A aufrufen:
class A { private: void func() { } }; class B { public: void call() { A a; a.func(); } };
Wenn ja was muss ich noch einfügen?
-
Hat sich erledigt. *gg*
class B { public: void call() { } }; class A { private: friend void B::call(); void func(); }; void A::func() { B b; b.call(); }
-
in Klasse A, schreibst du
friend class B;
-
DrGreenthumb schrieb:
in Klasse A, schreibst du
friend class B;
Das wäre zu gefährlich. :p
-
Naja, unter "gefährlich" verstehe ich was anderes.
Auf dein erstes Posting bezogen, ist es ausserdem die einzige Möglichkeit, weil die Klasse erst definiert sein muss, bevor man die Methoden davon friend machen kann.
-
btw:
Die Version von equal= ist falsch.A kann von sich selber nicht behaupten friend von B zu sein. Aber um ehrlich zu sein: ich bin etwas verwirrt. Die beiden Codebeispiele sind total unterschiedlich...
-
class A { public: void func(); }; class B { private: friend void A::func(); void call() { } }; void A::func() { B b; b.call(); }
-
Shade Of Mine schrieb:
btw:
A kann von sich selber nicht behaupten friend von B zu sein.Aber es kann B zu einem friend von sich machen, sodass B Zugriff auf A hat.
MfG MAV