Article View: de.comp.lang.c++
Article #848Re: Frage zum friend-Konzept in C++
From: Knut
Date: Wed, 22 Nov 1995 14:28
Date: Wed, 22 Nov 1995 14:28
51 lines
2270 bytes
2270 bytes
Hallo,
Krause@btx.dtag.de (Karl-Heinz Krause) wrote:
>> ich habe eine Frage bezüglich des friend-Konzepts in C++. Ich möchte eine Ele-
>> mentfunktion einer Klasse B zum Freund einer Klasse A erklären. Klasse B
>> wird aber erst nach Klasse A definiert (mal angenommen, das ist wirklich
>> nicht zu ändern...).
>
>Wenn eine bestimmte Elementfunktion von B zum Freund von A werden soll,
>so muß in der Definition von A sowas wie
friend B::f();
>stehen. Das setzt voraus, daß B bereits definiert ist, da nur in der
>Definition von B die Elementfunktion f deklariert werden kann. Das ganze
>sähe dann etwa so aus:
class A;
class B_0 {
public:
virtual int f(A&);
};
class A {
int i;
friend int B_0::f(A&);
};
class B : public B_0 {
...
};
int B::f(A &a) { return a.i; }
>Wenn es aus irgendeinem Grund nicht möglich ist, die Definition von B
>vor die Definition von A zu schreiben, so bleibt leider keine andere
>Möglichkeit als die ganze Klasse B zum Freund von A zu machen.
Es gibt noch die Moeglichkeit eine Hilfsklasse (hier B_0) vor A zu
deklarieren, die genau die benoetigten Funktionen von B beinhaltet,
eventuell als virtual. Diese Klasse oder die Funktionen koennen dann
in A als friends deklariert werden. Die spaeter deklarierte Klasse B
wird einfach von der Hilfsklasse B_0 abgeleitet.
--
===============================================================================
knut@studbox.uni-stuttgart.de
===============================================================================
Technical Details
Message-ID:
<48vc2m$uvk@info4.rus.uni-stuttgart.de>Path:
arc1-ca.pugleaf.net!news.uni-stuttgart.de!newsReferences:
<5yDZrjT0jmB@merleau.prima.ruhr.de> <48t2nu$hvu@news00.btx.dtag.de>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!news.uni-stuttgart.de!news From: Knut <Knut@studbox.uni-stuttgart.de> Newsgroups: de.comp.lang.c++,fido.ger.c_plusplus Subject: Re: Frage zum friend-Konzept in C++ Date: 22 Nov 1995 14:28:38 GMT Organization: Comp.Center (RUS), U of Stuttgart, FRG Message-ID: <48vc2m$uvk@info4.rus.uni-stuttgart.de> References: <5yDZrjT0jmB@merleau.prima.ruhr.de> <48t2nu$hvu@news00.btx.dtag.de> NNTP-Posting-Host: itosun.ito.uni-stuttgart.de Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Mailer: Mozilla 1.1N (X11; I; SunOS 5.4 sun4m) X-URL: news:48t2nu$hvu@news00.btx.dtag.de