一个编译的问题
----------TalkDoc.h------------------------------
#include "ListenSocket.h"
class CTalkDoc : public CDocument
{
..........
CListenSocket* pDoc;
}
----ListenSocket.h-----------------
#include "TalkDoc.h"
class CListenSocket : public CSocket
{
..........
CTalkDoc* pDoc;
}
以上在编译是会出错,但是要怎么才能够在两个类里面定义相互的实例呢
问题点数:0、回复次数:3Top
1 楼wu4long()回复于 2003-06-03 08:10:53 得分 0
在一个文件中可采用前向声明,例如:
class CListenSocket;
class CTalkDoc : public CDocument
{
..........
CListenSocket* pDoc;
}
class CListenSocket : public CSocket
{
..........
CTalkDoc* pDoc;
}
Top
2 楼wu4long()回复于 2003-06-03 08:14:25 得分 0
在多个文件中,试一下下面的方法:
----------TalkDoc.h------------------------------
class CListenSocket;
class CTalkDoc : public CDocument
{
..........
CListenSocket* pDoc;
}
#include "ListenSocket.h"
----ListenSocket.h-----------------
class CTalkDoc;
class CListenSocket : public CSocket
{
..........
CTalkDoc* pDoc;
}
#include "TalkDoc.h"
感觉这样做是不太对,我没试过,你看看,能否通过,实在不行,还是将他们定义在同一个头文件中吧。Top
3 楼clockwise3(Max)回复于 2003-06-03 14:04:17 得分 0
感觉楼上说得有道理.class CListenSocket;只是声明了一个类,而没有实际分配存储空间,所以编译不会错.按照楼主的交叉应用应该是行不通的.Top




