003
30.07.2006, 10:24 Uhr
FloSoft
Medialer Over-Flow (Administrator)
|
dann scheinst du sie falsch zu verwenden oder du erzeugst wirklich irgendwelche rekursionen die der compiler nicht erkennt.
Ansonstne kann man auch forward-deklarationen verwenden:
C++: |
class A { B *pB; };
...
class B { A *pA; };
|
Wenn man in obigem Fall bei A den header B inkludiert, und in B den Header A, erzeugt das natürlich ne "header-rekursion"
Das kann man so umgehen:
C++: |
class B; // forward-deklaration von B, geht da B als pointer benutzt wird, nicht als "festes" objekt
class A { B *pB; };
... class A; // forward-deklaration von A, geht da A als pointer benutzt wird, nicht als "festes" objekt
class B { A *pA; };
|
und dann die jeweiligen header in der .cpp datei inkludieren und nicht mehr im header. Man sollte immer möglichst vermeiden das Header andere Header einbinden, da man da nicht 100%ig kontrollieren kann was wer wo wie einbindet und auch teilweise unnötige abhängigkeiten entstehen. Natürlich die Header, die gebraucht werden, muss man natürlich inkludieren, da führt ja kein Weg daran vorbei. -- class God : public ChuckNorris { }; Dieser Post wurde am 30.07.2006 um 10:29 Uhr von FloSoft editiert. |