我一直在學習C++只是一段時間到現在(雖然我花了很多時間學習C年前),所以我的問題可能聽起來簡單,有經驗的程序員,但我無法找到答案了嗎。 :我應該如何理解這個函數調用?
我的工作我自己通過sample project,它實現了一個基於客戶端 - 服務器聊天應用程序exaplain的Windows套接字編程。
有用於製造連接請求的服務器等待一個函數調用:
m_Server.Accept(m_Server.m_Client)
的接受()函數中的CAsyncSocket類中聲明:
virtual BOOL Accept(
CAsyncSocket& rConnectedSocket,
SOCKADDR* lpSockAddr = NULL,
int* lpSockAddrLen = NULL);
有沒有單獨的聲明代碼中的Accept()函數將覆蓋此聲明,因此第二個和第三個參數將被假定爲NULL,因爲這些是已定義的默認參數。 (所以我認爲這是不相關的函數聲明爲在此背景下虛擬)
的對象m_Server和m_Client是兩種類型的ServerSocket類,從CSocket類派生,它是從CAsyncSocket類派生的(MFC標準類)。現在
,來到我的問題:這兩個對象單獨創建並有它們之間沒有層次關係。那麼我該如何理解函數調用Accept(m_Server.m_Client)?什麼是這種用法點操作的正確的術語表達/這是什麼做的正是在這裏/什麼是在這種情況下產生的m_Server.m_Client具體的參數?
The code can be downloaded from codeproject.com:m_server在ChatServerDlg.h定義和m_Client在ServerSocket.h
定義我會很感激這個解釋。提前致謝。
如果您想告訴我們您從代碼中不能理解的內容,可能會更容易回答。 –
_「在這種情況下m_Server.m_Client產生的具體參數是什麼?」_ m_Server實例中的成員變量m_Client。 –
@πάνταῥεῖ我認爲他說m_Server和m_Client是單獨創建的同一類型ServerSocket的對象。從我所理解的問題來看,「如何用一個參數m_Server **。m_Client?調用函數Accept?」。點表示一個成員,但在這種情況下,m_Client不是成員,而是一個單獨的對象。 c128linux,這是你在問什麼? –