Quella dichiarazione è corretta (al punto che io modificherei anche AbsPezzo.hh nello stesso modo).
Modificando ancora il file Casella.hh in:
codice:
#ifndef CASELLA_HH
#define CASELLA_HH

class Posizione; // Forward declaration
class AbsPezzo; // forward declaration.

class Casella
{

private:

  Posizione *_p;

  AbsPezzo *_pezzo;

public:

  Casella (int x, int y);
  ~Casella();

  int x ();
  int y ();

  void concatena (AbsPezzo *pezzo);

};

#endif
hai ancora errori?