从'int(*)()'到'int'的无效转换[-fpermissive]

时间:2014-09-19 14:21:05

标签: c++

我有两个这样的课程 driver.cpp ,方法void loadFile util.cpp

调用另一个方法int initialDragonXPos
int loadFile(Dragon * dragons) 
{
    int index = 0;
    index++;
    dragons[index].setPosX(initialDragonXPos);
}

方法int initialDragonXPos 就像这样

int initialDragonXPos( )
{
    int pos = rand( ) % (MAX_DRAGON_XPOS * 2);
    pos = pos + MIN_DRAGON_XPOS;

    return pos;
}

这也是 setPosX 方法

void Dragon::setPosX(int posX)
{
    this->posX = posX;
}

所以我得到错误:从'int(*)()'到'int'[-fpermissive] 的无效转换。所以我该如何解决它

1 个答案:

答案 0 :(得分:2)

您的专家dragons[index].setPosX(initialDragonXPos);正在尝试分配函数initialDragonXPos地址,这会因类型不匹配而导致编译错误。

您需要实际调用该函数。改为:

dragons[index].setPosX(initialDragonXPos());