着急!大神救救我...一个很简单的问题..

Raychain_Sun 2012-06-14 04:44:21
这是我问题的简化版
我定义了两个类
一个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
究竟是为什么??能不能告诉我?谢谢了!
...全文
78 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Raychain_Sun 2012-06-14
  • 打赏
  • 举报
回复
啊!!太谢谢了!我以前都不知道要加上这个声明,太谢谢了!
Raychain_Sun 2012-06-14
  • 打赏
  • 举报
回复
是指头文件相互包含吗?可是如果去掉任何一个头文件中的一个#include,那么各自类中的private成员的类型编译器不是就不知道了吗?
csucdl 2012-06-14
  • 打赏
  • 举报
回复
加上前向声明
Folder头文件中 在Folder定义之前 加上class File;
File头文件中 在File定义之前加上 class Folder;
luciferisnotsatan 2012-06-14
  • 打赏
  • 举报
回复
互相包含???

64,439

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧