Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » bidirektionale Assoziationen implementieren

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
20.12.2004, 16:34 Uhr
kuehlwalda



Hi,

man kann in verschiedenen Lehrbüchern oder auf Websides über UML die Implementierung von bidirektionalen Assoziationen zwischen Klassen finden;
für alle die damit nichts anfangen können, folgendes Beispiel:


C++:
class Klasse1
{
public:
Klasse2* ptr2; // Zeiger auf Klasse "Klasse2"
...
} ;

class Klasse2
{
public:
Klasse1* ptr1; // vgl. oben
...
} ;


Es handelt sich in der Implementierung also einfach um zwei Klassen, auf die GEGENSEITIG mittels Zeigern zugegriffen werden soll.

Wenn ich nun diese Schema aber in einem Beispielsprogramm anwende, also

C++:
#include "Klasse1.h"
#include "Klasse2.h"

int main()
{
...
}



gibt der Kompiler eine Fehlermeldung aus: "Klasse2 was not declared in this scope". Was muss man also tun, damit man in einer Anwendung zwei Klassen implementieren kann, die sich gegenseitig kennen, sprich wie kann ich es machen, dass ich von Klasse1 aus auf Klasse2 zugreifen kann und umgekehrt, und das eben innerhalb einer geschlossenen Anwendung, wie das letzte Minibeispiel?
Hat jemand eine Idee, vielleicht mit kompletten Minibeispiel?

Gruß
Julio


Bearbeitung von Pablo:

WIE OFT MUSS MAN DENN EUCH NOCH SAGEN, DASS IHR DIE CPP TAGS SELBER BENUTZEN SOLLT? SOLLTET IHR NICHT TUN, SCHLIEßE ICH DEN THREAD!


Dieser Post wurde am 20.12.2004 um 17:27 Uhr von Pablo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
20.12.2004, 21:43 Uhr
(un)wissender
Niveauwart


Forward-Deklaration, das wars.


C++:
class Klasse2; //hier Klasse2 bekannt machen.

class Klasse1
{
public:
Klasse2* ptr2; // Zeiger auf Klasse "Klasse2"
...
} ;

class Klasse2
{
public:
Klasse1* ptr1; // vgl. oben
...
} ;


--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: