Possible en double:
How to best pass methods into methods of the same classpointeur de fonction de classe en tant que paramètre
Je ne l'ai jamais eu des problèmes en passant un pointeur de fonction en tant que paramètre. Cela fonctionne:
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;
}
Cependant, en passant la fonction d'objet ne
void MyClass::setter(float value){ }
void MyClass::testFunction(void(*setterPtr)(float)){ }
void MyClass::someFunc(){
testFunction(&(this->setter));
}
Pour moi, cela ressemble à passer l'adresse de ce lieu de la fonction, et je suis un peu confus. Est-il possible de le faire? Et est-il possible de passer le pointeur de fonction d'objet d'une autre classe (par exemple MyClass2)? Editer: Erreur que je reçois est "class 'MyClass' n'a aucun membre 'setter'".
http://www.parashift.com/c++-faq/pointers-to-members.html –