Comment puis-je passer d'une fonction membre où une fonction libre est prévu?

La question est la suivante: considérer ce morceau de code:

#include <iostream>


class aClass
{
public:
    void aTest(int a, int b)
    {
        printf("%d + %d = %d", a, b, a + b);
    }
};

void function1(void (*function)(int, int))
{
    function(1, 1);
}

void test(int a,int b)
{
    printf("%d - %d = %d", a , b , a - b);
}

int main (int argc, const char* argv[])
{
    aClass a();

    function1(&test);
    function1(&aClass::aTest); //<-- How should I point to a's aClass::test function?

    return 0;
}

Comment puis-je utiliser le a's aClass::test comme un argument de function1? Je suis coincé dans faisant cela.

Je voudrais accéder à un membre de la classe.

  • Jetez un oeil à cette réponse stackoverflow.com/questions/2402579/... et aussi ce C++ FAQ parashift.com/c++-faq/pointers-to-members.html
  • Ce n'est absolument pas un doublon (au moins pas de question en particulier qui est lié). Cette question est sur la façon de déclarer un membre qui est un pointeur vers une fonction; c'est sur la façon de passer un pointeur à un non-membre statique de la fonction en tant que paramètre.