Salve! Ho un problema. Nel mio progetto ho una classe "MovableUnit" che deriva da "Unit".

MovableUnit.h:
codice:
#ifndef _MOVABLEUNIT_H_
#define _MOVABLEUNIT_H_

#include "Unit.h"
#include <OgreNewt.h>
class Application;
class Unit;

class MovableUnit : public Unit{
	public:
		MovableUnit(Application* game,SceneManager* mSceneMgr,OgreNewt::World* m_World);	
	private:
	
	protected:

};

#endif
Il problema è che quando mi compila Unit.cpp, include ovviamente Unit.h, che include "Application.h" che include anche "MovableUnit.h"

e mi restituisce questo errore:

Unit.cpp
f:\cadue\c++\strategy\source\MovableUnit.h(9) : error C2504: 'Unit': classe base non definita

Praticamente se una classe A deriva da B la classe B non può includere l'header di A? Se è così non so proprio come fare, perchè dovrei dire ad Unit.h di includere Application.h ma NON includere "MovableUnit.h" che però Application.h include a sua volta.
Non ci capisco proprio niente! Qualcuno ha idea di come risolvere?