線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:811
推到 Plurk!
推到 Facebook!

c++語法

尚未結案
stone886
一般會員


發表:32
回覆:15
積分:9
註冊:2003-09-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-07-24 18:00:22 IP:218.175.xxx.xxx 未訂閱
void CMySocket::OnClose(int nErrorCode) { if(nErrorCode == 0) ((CHyperChatDlg*)m_pWnd)->OnClose(); } 請問((CHyperChatDlg*)m_pWnd)->OnClose 這段是什麼意思 thx
bigdogchina
版主


發表:238
回覆:523
積分:312
註冊:2003-04-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-07-24 18:34:53 IP:211.162.xxx.xxx 未訂閱
Hi,stone886,您好! 這段code好象是用VC++寫的吧(因爲看見起子類的命名是CMySocket,是以C開頭的,我猜測),用來關閉Socket連接的,參數是一個int型的nErrorCode,而您不解的這句((CHyperChatDlg*)m_pWnd)->OnClose()是將CHyperChatDlg類型的對話提示框關閉,m_pWnd應該是Windows Handle吧。 我純粹是瞎猜的,特抛轉引玉,期待真正的高手出現! ================================= <>人生在勤,不索何獲 <>業精於勤荒於嬉,行成於思毀於隨 <>臨淵羡魚不如退而結網
------
人生在勤,不索何获?
brownshui
一般會員


發表:0
回覆:18
積分:3
註冊:2004-05-01

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-07-25 10:27:08 IP:211.20.xxx.xxx 未訂閱
To stone886: 這裡應該是強制轉換 m_pWnd 為 CHyperChatDlg * (這是有風險的) 我認為比較好的用法是使用
dynamic_cast(m_pWnd)
並丟在一個變數中, 假設為 m_pHyper 再使用 m_pHyper->OnClose(); 寫起來應該會長這樣:
if(m_pHyper = dynamic_cast(m_pWnd))
{
    m_pHyper->OnClose();
}
stone886
一般會員


發表:32
回覆:15
積分:9
註冊:2003-09-13

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-07-25 15:38:23 IP:218.175.xxx.xxx 未訂閱
我看不懂的是(CHyperChatDlg*)m_pWnd 為什麼還要在括孤..難道這是要強制轉換的語法 thx
brownshui
一般會員


發表:0
回覆:18
積分:3
註冊:2004-05-01

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-07-31 17:56:15 IP:211.75.xxx.xxx 未訂閱
因為 "->" 的優先次序比 Type casting 還高 如果寫成(CHyperChatDlg*)m_pWnd->OnClose(); 就相當於(CHyperChatDlg*)(m_pWnd->OnClose());
stone886
一般會員


發表:32
回覆:15
積分:9
註冊:2003-09-13

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-08-04 22:27:22 IP:220.141.xxx.xxx 未訂閱
((CHyperChatDlg*)m_pWnd)->OnClose(); 是不是應該是()的優先運算,高於* 所以要先用(CHyperChatDlg*) 在用個括號把(CHyperChatDlg*)m_pWnd括起來處理 在->OnClose() 是嗎? thx
brownshui
一般會員


發表:0
回覆:18
積分:3
註冊:2004-05-01

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-08-20 08:43:22 IP:60.248.xxx.xxx 未訂閱
是的 在使用 Type Casting 時要非常小心, 否則往往跑出來的結果可能不是你想要的 
系統時間:2024-05-11 14:29:27
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!