+ -
当前位置:首页 → 问答吧 → MFC下,类继承在多cpp文件下编译报错

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到其他文件中进行调用。
本人小菜,还请各位大拿指教,是怎么个情况,该怎么解决,拜谢~~

作者: xtrong   发布时间: 2011-12-18

具体讲清楚点噻

作者: ghj123h   发布时间: 2011-12-18

我把Graph类的定义和基类base写在同一个xxx.h里,把Graph类的成员函数的实现写到单独的xxx.cpp里。

这样应该可以。

xxx.cpp文件要有:

#include xxx.h

作者: hztj2005   发布时间: 2011-12-18

引用 2 楼 hztj2005 的回复:

我把Graph类的定义和基类base写在同一个xxx.h里,把Graph类的成员函数的实现写到单独的xxx.cpp里。

这样应该可以。

xxx.cpp文件要有:

#include xxx.h


嗯,.cpp里当然有加对应的头文件的

作者: xtrong   发布时间: 2011-12-18

我自己感觉已经把问题表述的挺清楚了的,不知道2楼需要我补充点什么。。那些两种情况的编译错误,是一样的,已经贴在上面了;
成员函数的实现就没必要贴了吧。。

作者: xtrong   发布时间: 2011-12-18

热门下载

更多