函数指针不是函数或函数指针

jer*_*tus 3 c++ pointers function

我有以下问题:

void MyClass::LoopFunction(vector<Item>& items,void (MyClass::*funcy)(vector<Item>&,int))
{
    for(SInt32 i = 0; i < 50; i++)
    {
        funcy(items,i);
    }

}
Run Code Online (Sandbox Code Playgroud)

它说:

Called object type 'void(MyClass::*)(vector<Item>&,int)' is not a function or function pointer
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我找到解决方案吗?

Tar*_*ama 5

funcy 是一个指向成员函数的指针,因此您需要在类的实例上调用它,如下所示:

(this->*funcy)(items,i);
Run Code Online (Sandbox Code Playgroud)