2011-05-20 101 views
-2

編譯器錯誤C2440我得到一個C2440編譯器錯誤,當我建立我的程序,但無法弄清楚如何解決它幫助與C++

這裏是它出現就行了:

if((*Iter)->classID != classID && (*Iter)->getX() == (int)pos.x && (int)(*Iter)->getY == (int)pos.y) 

請幫忙!!!

+0

Iter是什麼?你能發佈更多的代碼嗎? – user258808 2011-05-20 01:37:55

回答

1

看起來你是在爲你getY呼叫丟失()

(int)(*Iter)->getY大概應該是(int)(*Iter)->getY()

+0

我同意這看起來也是一個錯誤(+1),但我不認爲這是編譯器在這裏抱怨的錯誤。至少,我不認爲這會導致無效的類型轉換消息。 – 2011-05-20 01:38:47

+0

@比利:它*對我來說很有意義(將函數指針類型轉換爲int而不是返回值),但它是第一個立即脫穎而出的:) – 2011-05-20 01:41:49

+0

@Billy:可以將無效類型轉換爲試圖將一個函數指針(即getY)轉換爲一個整數? (自己還沒有編譯過。) – 2011-05-20 01:42:19

0

我猜它這部分(*Iter)->getX() == (int)pos.x,也許它需要(int)(*Iter)->getX() == (int)pos.x。這僅僅是基於表達式的(int)(*Iter)->getY == (int)pos.y部分的黑暗中的一個鏡頭。更多的代碼/上下文將會非常有幫助。正如德米安布萊希特所指出的那樣,也許()在表達的這一部分也是缺失的。