类函数指针作为参数

Mer*_*ial 2 c++ parameters pointers function

可能重复:
如何最好地将方法传递到同一类的方法中

我从未遇到过将函数指针作为参数传递的问题.这有效:

void functionThatTakesFPTR(void(*function)(int), int someValue){ 
    function(someValue);
   }

void printValue(int value){
    std::printf("%d",value);
}

int main(int argc, char** argv){
    functionThatTakesFPTR(&printValue, 8);

    return EXIT_SUCCESS;
}
Run Code Online (Sandbox Code Playgroud)

但是,传递对象功能却没有

void MyClass::setter(float value){ }

void MyClass::testFunction(void(*setterPtr)(float)){ }

void MyClass::someFunc(){
     testFunction(&(this->setter));
}
Run Code Online (Sandbox Code Playgroud)

对我来说,这看起来像传递这个地址而不是函数,我有点困惑.有可能这样做吗?是否可以传递另一个类(实例MyClass2)的对象的函数指针?

编辑:我得到的错误是"类'MyClass'没有成员'setter'".

Jon*_*ood 7

问题是对方法的调用还需要引用类实例.您不能简单地将类方法称为独立函数.

您需要阅读有关指针到成员函数的信息.