クラスの相互参照状態についてなのですが

■ClassA.h
class ClassB;
class ClassA
{
public:
void funcA();
ClassB *b;
};

■ClassB.h
#include "ClassA.h"
class ClassB : public ClassA
{
public:
void funcB() {}
};

■ClassA.cpp
#include "ClassA.h"
void ClassA::funcA()
{
b->funcB();
}

このような構成にすると
>error C2027: 認識できない型 'ClassB' が使われています。
と言われてコンパイルエラーになってしまいます。
ClassBのメンバ関数を使わない限りはコンパイルできるようなのですが、
メンバ関数を使いたい場合どのように解決するのが良いのでしょうか?
環境はVisual C++ 2008 Express Editionです。宜しくお願いします。