2011-05-20 105 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部分的黑暗中的一个镜头。更多的代码/上下文将会非常有帮助。正如德米安布莱希特所指出的那样,也许()在表达的这一部分也是缺失的。