MFC下,类继承在多cpp文件下编译报错
时间:2011-12-18
来源:互联网
1. 我新建了一个a.h,里面定义了一个基类class base,包含两个public的虚函数:
class base : public CObject{
public:
virtual void Offset( int cx, int cy ) = 0;
virtual void Draw( CDC *pdc ) = 0;
};
2. 我从base那里继承一个graph类,
class Graph : public base {
CObArray elems;
public:
Graph();
void Offset( int cx, int cy );
void Draw( CDC *pdc );
};
3. 我把Graph类的成员函数,在类里实现,并且和基类写在同一个.h文件下;编译通过
问题是:
我如果把Graph类单独写到一个.h文件里,并且Graph类的成员函数的实现单独写成一个cpp文件,编译报错;
我把Graph类的定义和基类base写在同一个.h里,把Graph类的成员函数的实现写到单独的cpp里,编译报错;
error C2061: syntax error : identifier 'CDC'
error C2061: syntax error : identifier 'CDC'
warning C4518: 'void ' : storage-class or type specifier(s) unexpected here; ignored
error C2143: syntax error : missing ';' before 'tag::id'
fatal error C1004: unexpected end of file found
以上的.h和.cpp都还没有include到其他文件中进行调用。
本人小菜,还请各位大拿指教,是怎么个情况,该怎么解决,拜谢~~
class base : public CObject{
public:
virtual void Offset( int cx, int cy ) = 0;
virtual void Draw( CDC *pdc ) = 0;
};
2. 我从base那里继承一个graph类,
class Graph : public base {
CObArray elems;
public:
Graph();
void Offset( int cx, int cy );
void Draw( CDC *pdc );
};
3. 我把Graph类的成员函数,在类里实现,并且和基类写在同一个.h文件下;编译通过
问题是:
我如果把Graph类单独写到一个.h文件里,并且Graph类的成员函数的实现单独写成一个cpp文件,编译报错;
我把Graph类的定义和基类base写在同一个.h里,把Graph类的成员函数的实现写到单独的cpp里,编译报错;
error C2061: syntax error : identifier 'CDC'
error C2061: syntax error : identifier 'CDC'
warning C4518: 'void ' : storage-class or type specifier(s) unexpected here; ignored
error C2143: syntax error : missing ';' before 'tag::id'
fatal error C1004: unexpected end of file found
以上的.h和.cpp都还没有include到其他文件中进行调用。
本人小菜,还请各位大拿指教,是怎么个情况,该怎么解决,拜谢~~
作者: xtrong 发布时间: 2011-12-18
具体讲清楚点噻
作者: ghj123h 发布时间: 2011-12-18
我把Graph类的定义和基类base写在同一个xxx.h里,把Graph类的成员函数的实现写到单独的xxx.cpp里。
这样应该可以。
xxx.cpp文件要有:
#include xxx.h
这样应该可以。
xxx.cpp文件要有:
#include xxx.h
作者: hztj2005 发布时间: 2011-12-18
引用 2 楼 hztj2005 的回复:
我把Graph类的定义和基类base写在同一个xxx.h里,把Graph类的成员函数的实现写到单独的xxx.cpp里。
这样应该可以。
xxx.cpp文件要有:
#include xxx.h
我把Graph类的定义和基类base写在同一个xxx.h里,把Graph类的成员函数的实现写到单独的xxx.cpp里。
这样应该可以。
xxx.cpp文件要有:
#include xxx.h
嗯,.cpp里当然有加对应的头文件的
作者: xtrong 发布时间: 2011-12-18
我自己感觉已经把问题表述的挺清楚了的,不知道2楼需要我补充点什么。。那些两种情况的编译错误,是一样的,已经贴在上面了;
成员函数的实现就没必要贴了吧。。
成员函数的实现就没必要贴了吧。。
作者: xtrong 发布时间: 2011-12-18
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28