🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: de.comp.lang.c++
Article #848

Re: Frage zum friend-Konzept in C++

#848
From: Knut
Date: Wed, 22 Nov 1995 14:28
51 lines
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!news
References: <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