Odzilla
12-11-2005, 22:22
Und gleich das nächste Problem :)
Habe zwei verschiedene Klassen in zwei verschiedenen Header-Dateien definiert.
list.h:
#include "data.h" // <- führt an der Stelle zu 'cNode undeclared'
class cNode
{
public:
[...]
protected:
[...]
cMyData * myData;
};
data.h:
#include "list.h" // <- führt zu 'cMyData undeclared'
class cMyData
{
public:
[...]
protected:
cNode * myNode;
};
Das Problem ist, dass sich die Klassen gegenseitig benötigen und ich somit die Header untereinander inkludieren muss. Dabei kommt es zu dem Fehler, dass immer entweder cNode oder cMyData nicht definiert sind, je nachdem welche Header-Datei zuerst verarbeitet wird.
Ich wollte nicht beide Klassen in eine Header schmeissen, da dies sehr unübersichtlich ist. (Sie waren in der letzten Version zusammen, in dieser will ich sie trennen)
Leider brauch ich in beiden Dateien auch Zugriff auf die Methoden der Klassen, deshalb bringt es nichts, die Klassen per 'class cNode;' bzw 'class cMyData;' in die jeweils anderen Header-Datei zu integrieren.
Wie löst ihr sowas? Schmeisst ihr die Klassen zusammen, oder gibts noch ne andere Methode?
Habe zwei verschiedene Klassen in zwei verschiedenen Header-Dateien definiert.
list.h:
#include "data.h" // <- führt an der Stelle zu 'cNode undeclared'
class cNode
{
public:
[...]
protected:
[...]
cMyData * myData;
};
data.h:
#include "list.h" // <- führt zu 'cMyData undeclared'
class cMyData
{
public:
[...]
protected:
cNode * myNode;
};
Das Problem ist, dass sich die Klassen gegenseitig benötigen und ich somit die Header untereinander inkludieren muss. Dabei kommt es zu dem Fehler, dass immer entweder cNode oder cMyData nicht definiert sind, je nachdem welche Header-Datei zuerst verarbeitet wird.
Ich wollte nicht beide Klassen in eine Header schmeissen, da dies sehr unübersichtlich ist. (Sie waren in der letzten Version zusammen, in dieser will ich sie trennen)
Leider brauch ich in beiden Dateien auch Zugriff auf die Methoden der Klassen, deshalb bringt es nichts, die Klassen per 'class cNode;' bzw 'class cMyData;' in die jeweils anderen Header-Datei zu integrieren.
Wie löst ihr sowas? Schmeisst ihr die Klassen zusammen, oder gibts noch ne andere Methode?