改变视图类的基类所产生的问题!!!???

Colo 2000-09-12 03:36:00
我用APP Wizard 向导生成一个单文档应用程序,设定视图类CMyListView(
MyListView.h、MyListView.cpp)的基类为CListView,后来我编写了一个由CListView
派生的类CListViewEx(ListViewEx.h、ListViewEx.cpp),此时我想把
CMyListView的父类改变为CListViewEx,当我手工把程序中相应地方改好后,编译
却提示:
class CMyListView : public CListViewEx
{
......

错误提示:'CListViewEx' : base class undefined
(没有其它类型的错误提示)
在MyListView.cpp中我已把ListViewEx.h包含在MyListView.h之前,并排除打字错误.
我百思不得其解,请问各位我可能漏掉了哪些地方?
或告诉我改变一个类的基类的方便方法,谢谢。
...全文
141 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Colo 2000-09-13
  • 打赏
  • 举报
回复
感谢softsprite和Holly,在你们的帮助下问题解决了,我觉得Holly的方法要好一点,
我不喜欢在头文件当中包含其它文件,我觉得这不标准。
再次感谢.
Holly 2000-09-13
  • 打赏
  • 举报
回复
colo:
你的方法并没有错!关键是在编译时你看到的是哪一个文件在编译时报错,你的View的使用肯定不止在View的CPP中,在App肯定会有,App的CPP文件中你是否忘记增加#include "listviewex.h"
建议你用edit->Find in Files查找工程中有:
#include "MyListView.h"
这一句的地方,在其前面增加
#include "listviewex.h"

也可在stdafx.h中将
#include "listviewex.h"
加上,就可以不管其他文件了!

附:你的redefine的错误表明你的listviewex.h中没有使用编译控制手段,如:
#ifdef __LISTVIEWEX_H__
#define __LISTVIEWEX_H__
//h文件内容
...

#endif // end of __LISTVIEWEX_H__
建议加上!
U皮特U 2000-09-12
  • 打赏
  • 举报
回复
中秋快乐! Colo.
将.cpp中的#include "ListViewEx.h"删除!!
将#include "ListViewEx.h"这一句放在MyListView.h文件中!
试试看,没错的!
放在.cpp中没用的, 因为编译.h时没有包含ListViewEx.h,不识别CListViewEx.
你后来在.h和.cpp中都包含这个头文件,当然会出现redefine错误!!!
keotty 2000-09-12
  • 打赏
  • 举报
回复
你这也国家报而过 白天 推广和他 人口同行3hubu33333bghiojiotjo4hitjojiooppio9pi
很多不就往后
防化兵女工矿24和阿赫哦哦
Colo 2000-09-12
  • 打赏
  • 举报
回复
softsprite:中秋快乐
我也知道这样,但在MyListView.cpp中我已把ListViewEx.h包含在MyListView.h之前
按我理解,在CMyListView : public CListViewEx我已定义了CListViewEx
而且按你的方法,会出现'CListViewEx' : 'class' type redefinition的错误。
因为我在ListViewEx.cpp之中已经#include "ListViewEx.h"了。
Colo 2000-09-12
  • 打赏
  • 举报
回复
softsprite:中秋快乐
我也知道这样,但在MyListView.cpp中我已把ListViewEx.h包含在MyListView.h之前
按我理解,在CMyListView : public CListViewEx我已定义了CListViewEx
而且按你的方法,会出现'CListViewEx' : 'class' type redefinition的错误。
因为我在ListViewEx.cpp之中已经#include "ListViewEx.h"了。
请继续聊一聊。
U皮特U 2000-09-12
  • 打赏
  • 举报
回复
#include "ListViewEx.h"这一句应该放在MyListView.h文件中,而不是MyListView.cpp文件中。
你的做法虽然在.cpp中可以识别CListViewEx,但在MyListView.h中没有包含ListViewEx.h,则class CMyListView : public CListViewEx不识别CListViewEx.

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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