You have cyclic dependencies. You can use forward declaration to remove them. However, with forward dependencies you are allowed only class pointers in the header file.
class Class3;
class Class1
{
...
private:
Class3* mClass3;
};
<br />
#include "Class1.h"
class Class2 : public Class1 { ... };
<br />
class Class2;
class Class3
{
...
private:
Class2* mClass2;
};
-Saurabh