MFC如何在自己的类中定义视图类变量?然后在视图类中定义该类对象?头文件包含应该是怎么个顺序?

我写一个类,里面定义了视图类的指针,所以该类头文件包含文档类头文件和视图类头文件。然后我又要在视图类中使用该类,所以在视图类头文件中要包含该类头文件。这样就形成了头文件嵌... 我写一个类,里面定义了视图类的指针,所以该类头文件包含文档类头文件和视图类头文件。然后我又要在视图类中使用该类,所以在视图类头文件中要包含该类头文件。这样就形成了头文件嵌套,编译出错。
以下是错误代码:
1>e:\visual stdio 2008 project\dynamicbitmap\dynamicbitmapview.h(75) : error C2146: 语法错误 : 缺少“;”(在标识符“CellsRect”的前面)
1>e:\visual stdio 2008 project\dynamicbitmap\dynamicbitmapview.h(75) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>e:\visual stdio 2008 project\dynamicbitmap\dynamicbitmapview.h(75) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>DynamicBitmap.cpp
1>e:\visual stdio 2008 project\dynamicbitmap\cellsrect.h(16) : error C2061: 语法错误 : 标识符“CDynamicBitmapView”
1>e:\visual stdio 2008 project\dynamicbitmap\cellsrect.h(22) : error C2143: 语法错误 : 缺少“;”(在“*”的前面)
1>e:\visual stdio 2008 project\dynamicbitmap\cellsrect.h(22) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>e:\visual stdio 2008 project\dynamicbitmap\cellsrect.h(22) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>DynamicBitmapView.cpp
1>e:\visual stdio 2008 project\dynamicbitmap\cellsrect.h(16) : error C2061: 语法错误 : 标识符“CDynamicBitmapView”
1>e:\visual stdio 2008 project\dynamicbitmap\cellsrect.h(22) : error C2143: 语法错误 : 缺少“;”(在“*”的前面)
1>e:\visual stdio 2008 project\dynamicbitmap\cellsrect.h(22) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>e:\visual stdio 2008 project\dynamicbitmap\cellsrect.h(22) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
我的视图类里面也添加了文档头文件
展开
 我来答
融化呵呵
2010-09-28
知道答主
回答量:16
采纳率:0%
帮助的人:12.7万
展开全部
这种方法是有问题的!我推荐一个方法,你可以在你的类里面定义一个CView的指针对象(因为CView类是你的视图类的基类,是定义在afxwin.h的头文件里面,所有的MFC工程都包含这个头文件),所以你不用再你的头文件里面包含视图类和文档类的头文件,然后你在cpp中,在你需要用到自己的视图类的地方进行强制类型转换,所以在你cpp里面包含上文档类和视图类的头文件(注意文档类包含在前)。然后你在视图类的头文件里面声明你的类,同样你的视图类的头文件要包含这个类的头文件,但视图类的cpp里面不需要包含这个类的头文件。这样就应该没问题了。我说的可能有乱,不懂可以离线留言。
百度网友4265fa47d
2010-09-28 · TA获得超过153个赞
知道答主
回答量:306
采纳率:0%
帮助的人:173万
展开全部
认出来了一种错误 楼主在视图类中也要添加文档类头文件 编译器默认是不添加的 要自己动手添加
在视图类中添加文档类头文件估计错误会少不少
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式