C ++中的错误C3867

时间:2010-10-20 15:38:55

标签: c++ visual-c++ compiler-errors

我的代码工作正常,直到几小时后重新加载程序。现在我收到这些错误:

  

错误C3867:'player :: getxPos':函数调用缺少参数列表;使用'& player :: getxPos'创建指向成员的指针

     

错误C3867:'player :: getyPos':函数调用缺少参数列表;使用'& player :: getyPos'创建指向成员的指针

这是有问题的代码:

if (P->shoot())
{
    shotVector.push_back(shot());
    eS = shotVector.size();
    shotVector[eS-1].initShot(
        P->getxPos, // C3867
        P->getyPos // C3867
    );
}

我正在尝试从名为player的类中调用两个函数,这两个函数看起来像这样:

int player::getxPos(){
    return xPos;
};

int player::getyPos(){
    return yPos;
};

我正在尝试询问球员的位置,然后用它来决定从哪里开球。

3 个答案:

答案 0 :(得分:21)

shotVector[eS-1].initShot(P->getxPos, P->getyPos); - 您试图在没有getxPos()的情况下致电getyPos()()成员。

使用getxPos()getyPos()

答案 1 :(得分:7)

你忘记了括号,它告诉编译器你想要一个方法调用:

P->getxPos

VS

P->getxPos()

如果您改为使用&P->getxPos,那将为您提供指向成员函数本身的指针。

答案 2 :(得分:1)

shotVector[eS-1].initShot(P->getxPos(), P->getyPos());