编译器错误C2440我得到一个C2440编译器错误,当我建立我的程序,但无法弄清楚如何解决它帮助与C++
这里是它出现就行了:
if((*Iter)->classID != classID && (*Iter)->getX() == (int)pos.x && (int)(*Iter)->getY == (int)pos.y)
请帮忙!!!
编译器错误C2440我得到一个C2440编译器错误,当我建立我的程序,但无法弄清楚如何解决它帮助与C++
这里是它出现就行了:
if((*Iter)->classID != classID && (*Iter)->getX() == (int)pos.x && (int)(*Iter)->getY == (int)pos.y)
请帮忙!!!
看起来你是在为你getY
呼叫丢失()
:
(int)(*Iter)->getY
大概应该是(int)(*Iter)->getY()
我同意这看起来也是一个错误(+1),但我不认为这是编译器在这里抱怨的错误。至少,我不认为这会导致无效的类型转换消息。 – 2011-05-20 01:38:47
@比利:它*对我来说很有意义(将函数指针类型转换为int而不是返回值),但它是第一个立即脱颖而出的:) – 2011-05-20 01:41:49
@Billy:可以将无效类型转换为试图将一个函数指针(即getY)转换为一个整数? (自己还没有编译过。) – 2011-05-20 01:42:19
我猜它这部分(*Iter)->getX() == (int)pos.x
,也许它需要(int)(*Iter)->getX() == (int)pos.x
。这仅仅是基于表达式的(int)(*Iter)->getY == (int)pos.y
部分的黑暗中的一个镜头。更多的代码/上下文将会非常有帮助。正如德米安布莱希特所指出的那样,也许()
在表达的这一部分也是缺失的。
Iter是什么?你能发布更多的代码吗? – user258808 2011-05-20 01:37:55