可能重复:
如何最好地将方法传递给同一类的方法
我从来没有遇到过将函数指针作为参数传递的问题。这有效:
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;
}
但是,传递对象函数不会
void MyClass::setter(float value){ }
void MyClass::testFunction(void(*setterPtr)(float)){ }
void MyClass::someFunc(){
testFunction(&(this->setter));
}
对我来说,这看起来像是传递 this 的地址而不是函数,我有点困惑。有可能这样做吗?是否可以传递另一个类(实例 MyClass2)的对象的函数指针?
编辑:我得到的错误是“类'MyClass'没有成员'setter'”。