vorwaertsdeklaration / innere klasse
-
hallo,
ich versuche zwischen 2 verschiedenen inneren klassen eine bidirektionale
referenz ueber jeweils einen pointer auf die andere klasse zu realisieren.ein beispiel fuer mein problem:
------------
class A
{
public:
class AB
{
public:
B::BA *bba;
};
};class B
{
public:
class BA
{
public:
A::AB *aab;
};
};
------------das funktioniert so nicht, da die klasse B::BA in A::AB noch nicht bekannt
ist.eine vorherige deklaration:
class B::BA;
funktioniert nicht und produziert einen compilererror.
ich frage mich, ob dies ueberhaupt moeglich ist und wenn, wie die
vorwaertsdeklaration hierfuer aussehen muesste?danke fuer eure hilfe.
martin
-
hast dus auch so probiert:
class b;
class b::BLa;wenn das nmicht geht würd ich sagen es geht nicht
mfg
Glamdring
-
Auch das kann nicht gehen, da der Compiler ja gar nicht wüsste, ob A::AB private, public oder protected ist. So in etwa sollte es aber funktionieren:
class A { public: class AB; }; class B { public: class BA; }; class A::AB { B::BA* ba; }; class B::BA { A::AB* ab; };