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'
codice:
class B
{
  //...
  private:
    A* mA;
};
Quindi in B.h metto #include "A.h"

La classe C invece, potrebbe essere fatta cosi'
codice:
class C
{
  //...
  void metodo(/*...*/);
  private:
    //...
};
e la definizione di metodo, in C.cpp necessita della creazione di un oggetto temporaneo A, quindi sara' fatto cosi'
codice:
void C::metodo(/*...*/)
{
  A temporaneo;
  //...
}
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?

Grazie