class CMainFrame;
class CRequest : public CSocket{
public:
CMainFrame *m_pMainFrame;
public:
CRequest(CMainFrame *pMainFrame);
virtual ~CRequest();
}上面那个class CMainFrame;是什么意思?为什么要写在这里?
同时,#include "MainFrm.h"还必须写在Request.cpp中,不能写在Request.h(否则会编译不过),为什么?
class CRequest : public CSocket{
public:
CMainFrame *m_pMainFrame;
public:
CRequest(CMainFrame *pMainFrame);
virtual ~CRequest();
}上面那个class CMainFrame;是什么意思?为什么要写在这里?
同时,#include "MainFrm.h"还必须写在Request.cpp中,不能写在Request.h(否则会编译不过),为什么?
不会编译出错
,#include "MainFrm.h"还必须要是因为CMainFrame的具体
的声明在那里
事实就是我说的那个样子,我没写错。
#include "MainFrm.h"还必须写在Request.cpp中,不能写在Request.h(否则会编译不过),为什么?(估计是与class CMainFrame;冲突)还有麻烦您解释一下class CMainFrame;的作用(写在Request.h中)
#include "mainfrm.h"
#include "request.h"
在request.h包含"mainfrm.h"应该也不会出现什么问题,其实声明类class CMainFrame主要是为了减少编译上的连锁效应,若你更改了mainfrm.h,也就只需重新编译request.cpp,而不用编译包含request.h的cpp文件。
在request.h中已经有
public:
CMainFrame *m_pMainFrame;#include "mainfrm.h"光写在request.cpp中有什么用?编译不过!
写在request.h照样编译不过。请两位留下mail,我把它发给你们。
情况如先定义一个空指针,这是定义一个空类,到程序初始化再定位。MSDN下的Samples\VC98\MFC好多例子都是这样。
#include "mainfrm.h"写在"request.h"之后一点问题没有。诸位高手能留下mail吗?我发给你们。
也欢迎你们加小弟QQ: 76628305
MSN:[email protected]