在一个工程里添加从CSocket派生的类CDSocket,编译没有错误,但是接着再从CSocket派生出一个类CListeningSocket,两个类中都没有添加任何代码,但是编译出现错误:error C2236: unexpected 'class' 'CListeningSocket'。但是CDSocket却没有这个错误,这是什么原因呢?
    如果在类CListeningSocket中保存CFasonDlg(主窗口类)的成员指针变量,如下代码:

ListeningSocket.h:class CListeningSocket : public CSocket
{
// Attributes
public:// Operations
public:
CListeningSocket(CFasonDlg *m_pDlg);
CFasonDlg *m_Dlg;
virtual ~CListeningSocket();// Overrides
public:
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CListeningSocket)
//}}AFX_VIRTUAL // Generated message map functions
//{{AFX_MSG(CListeningSocket)
// NOTE - the ClassWizard will add and remove member functions here.
//}}AFX_MSG// Implementation
protected:
};ListeningSocket.cpp:CListeningSocket::CListeningSocket(CFasonDlg *m_pDlg)//
{
m_Dlg=m_pDlg;
}CListeningSocket::~CListeningSocket()
{
}头文件的包含没有问题,编译后错误:
e:\1\fasong\listeningsocket.h(16) : error C2236: unexpected 'class' 'CListeningSocket'
e:\1\fasong\listeningsocket.h(23) : error C2629: unexpected 'class CListeningSocket ('
e:\1\fasong\listeningsocket.h(23) : error C2238: unexpected token(s) preceding ';'
e:\1\fasong\listeningsocket.h(24) : error C2143: syntax error : missing ';' before '*'
e:\1\fasong\listeningsocket.h(24) : error C2501: 'CFasonDlg' : missing storage-class or type specifiers
e:\1\fasong\listeningsocket.h(24) : error C2501: 'm_Dlg' : missing storage-class or type specifiers
E:\1\Fasong\ListeningSocket.cpp(19) : error C2511: 'CListeningSocket::CListeningSocket' : overloaded member function 'void (class CFasonDlg *)' not found in 'CListeningSocket'
e:\1\fasong\listeningsocket.h(16) : see declaration of 'CListeningSocket'这些大概是什么问题呢?