La situazione potrebbe essere schematizzata nel seguente modo:
header file "A.h" in cui definisco la classe A e relativo A.cpp
header file "B.h" in cui definisco la classe B e relativo B.cpp.
header file "C.h" in cui definisco la classe C e relativo C.cpp.
Poniamo il caso che la classe B sia fatta cosi'
Quindi in B.h metto #include "A.h"codice:class B { //... private: A* mA; };
La classe C invece, potrebbe essere fatta cosi'
e la definizione di metodo, in C.cpp necessita della creazione di un oggetto temporaneo A, quindi sara' fatto cosi'codice:class C { //... void metodo(/*...*/); private: //... };
C'e' quindi bisogno di includere A.h, e fino ad ora ho messo #include A.h nel file C.cpp, ma ora mi viene il dubbio: e' piu' corretto metterlo in C.h o in C.cpp?codice:void C::metodo(/*...*/) { A temporaneo; //... }
Grazie