nei file include devi mettere solo le dichiarazioni.
Quando scrivi class B * x; stai dicendo al compilatore che x è un puntatore ad una classe che si chiama B e che sarà definita successivamente. Il compilatore deve comunque associare ad x solo la memoria di un puntatore ad una classe.
Le diciture
int* x;
int * x;
int *x;
sono equivalenti anche se io preferisco la terza che esplicita meglio, secondo me, che x è un puntatore a int.
ciao
sergio