建立了一个单文档程序,让后自己添加了一个类,class CDrawRect : public CObject  
{
public:
CRect m_rect;public:
CDrawRect(int a=0,int b=0,int c=0,int d=0);
virtual ~CDrawRect();
};然后在视图类中定义了一个指针(视图类的.h文件中)
class CShiyan4View : public CScrollView
{
........
// Attributes
public:
    CDrawRect *m_pRect;
..........
};然后在视图类的cpp文件中包含#include "stdafx.h"
#include "shiyan4.h"#include "DrawRect.h"////已经包含进来了#include "shiyan4Doc.h"
#include "shiyan4View.h"最后编译,但是没通过
CDrawRect' : missing storage-class or type specifiers但是如果把#include "DrawRect.h"放在视图类的.h文件中,就可以,为什么啊????

解决方案 »

  1.   

    include 头文件位置不对先 "DrawRect.h"后 "shiyan4.h" 因为 shiyan4.h 用了 CDrawRect
      

  2.   

    楼上说的不对, shiyan4.h 里没有用到 CDrawRect
      

  3.   


    CDrawRect' : missing storage-class or type specifiers 是编译错误,不是链接问题错误信息是啥
      

  4.   

    就是
    missing ';' before '*'
    'CDrawRect' : missing storage-class or type specifiers 
    'm_pRect' : missing storage-class or type specifiers
      

  5.   

    另外我做了一个试验,就是不要建立mfc程序而改成控制台程序,用2个类模拟了上述的情况,就是一个类中使用另一个类的指针,然后在.cpp文件中include.奇怪的是没有错,可以运行,所以我想应该跟mfc有关系
      

  6.   

    在前面前置声明:
    class CDrawRect;
    class CShiyan4View
      

  7.   

    问题找到了,因为在shiyan4.cpp(应用程序对象)中也包含了 "shiyan4View.h" 所以解决方法之一:
       在shiyan4.cpp也包含#include "DrawRect.h".解决方法之二:
      直接在shiyan4View.h中包含DrawRect.h