着急大神救救小弟我.一个很简单的有关问题.

着急!大神救救我...一个很简单的问题..
这是我问题的简化版
我定义了两个类
一个File类一个Folder类
File.h文件如下:
#include "Folder.h"
class File
{
public:
File(void);
~File(void);
private:
Folder* p;
};

Folder.h文件如下:
#include "File.h"
class Folder
{
public:
Folder(void);
~Folder(void);
private:
File* p;
};

两个类的构造函数都是用默认的。
编译的时候...报错了
错误信息如下:
1>正在编译...
1>File.cpp
1>c:\users\sunrc\desktop\test\clas\clas\folder.h(9) : error C2143: 语法错误 : 缺少“;”(在“*”的前面)
1>c:\users\sunrc\desktop\test\clas\clas\folder.h(9) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>c:\users\sunrc\desktop\test\clas\clas\folder.h(9) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
究竟是为什么??能不能告诉我?谢谢了!

------解决方案--------------------
加上前向声明
Folder头文件中 在Folder定义之前 加上class File;
File头文件中 在File定义之前加上 class Folder;