Einbinden mehrerer Klassen die sich gegenseitig brauchen...
-
Hallo!
Ich habe da mehrere Klassen die sich gegenseitig brauchen also zb so:
class A { ... void foo(B* b); }; class B { ... void bar(A* a); }
Nun habe ich für jede in ne eigene header gesteckt und sie gegenseitig includiert:
file: a.h #ifndef A_H #define A_H #include "b.h" class A { void foo(B* b); } #endif file: b.h #include "a.h" #ifndef B_H #define B_H class B { void bar(A* a); }; #endif
Nunja aber das geht ja so nicht da sich sich dann gegenseitig includieren... Wie macht man das?!?!?
-
Wieso dürfen die sich nicht gegenseitig includieren?
-
Vorwärstdeklaration.
#ifndef A_HPP_INCLUDED #define A_HPP_INCLUDED class B; class A { // ... public: // ... void bar(B* b); // ... }; #endif
#ifndef B_HPP_INCLUDED #define A_HPP_INCLUDED class A; class B { // ... public: // ... void bar(A* a); // ... }; #endif
-
Ixtana schrieb:
Wieso dürfen die sich nicht gegenseitig includieren?
mögliche endlosrekursion.
a braucht b,b braucht wiederrum a, welches b braucht usw...