作者ireullin (raison detre)
看板C_and_CPP
標題[問題] 不同編譯器對指標函式的解讀
時間Fri Mar 2 14:23:27 2012
請問一下各位
下面是小弟的一段程式碼
在g++中可以編譯而且運作一切正常
可是拿到客戶那邊之後用xlc++編譯
在下列的 Execute() 函式中卻出現了問題
卻出現了下列問題
"../ClientSession.h", line 60.28: 1540-0251 (S) The "->*" operator cannot be
applied to the undefined class "class ClientSession".
請問這語法該怎麼調整呢
class ClientSession;
class SendFileThread : public RbtRunThread
{
public:
typedef void (ClientSession::*MethodName)(short protocol);
MethodName m_pMethod;
ClientSession* m_instance;
short m_protocol;
bool IsFinished()
{return m_isFinished;}
SendFileThread(MethodName pfn , ClientSession* instance, short protocol)
{
m_pMethod = pfn;
m_instance = instance;
m_protocol = protocol;
m_isFinished = false;
}
protected:
bool m_isFinished;
virtual void Execute()
{
(m_instance->*m_pMethod)(m_protocol);
m_isFinished = true;
}
};
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.220.71.34
→ angleevil:可能你只宣告class ClientSession,卻提取m_pMethod吧 03/02 14:31
→ angleevil:不過不確定就是了! 03/02 14:32
→ ireullin:那有什麼解法嗎 03/02 15:00
→ angleevil:include "ClientSession.h" 03/02 15:07