Come posso fare per permettere a due file di includersi a vicenda?
Faccio un esempio così mi spiego:
Ho due classi A e B, dichiarate rispettivamente dentro a A.h e B.h.
Sia A che B hanno al loro interno un puntatore ad una variabile del tipo dell'altra classe.
A.h
B.hcodice:#ifndef A_H #define A_H #include"B.h" class A{ B *b; }; #endif
Però questo non funziona e in un ipotetico main.cppcodice:#ifndef B_H #define B_H #include"A.h" class B{ A *a; }; #endif
Non mi riconosce il tipo A dentro a B.h.codice:#include"A.h" int main(int argc, char *argv[]){ A a(); return 0; }
Suppongo sia "colpa" dei #ifndef #define, tuttavia se non li metto i due file si includono a vicenda all'infinito e ovviamente non funziona.
Questo l'ho provato creando progetti sia con Dev-C++ sia con CodeBlocks.
Come si risolve in queste situazioni?
Grazie.

Rispondi quotando