¿Cómo puedo pasar una función miembro donde se espera una función libre?

La pregunta es la siguiente: considera este pedazo de código:

#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;
}

¿Cómo puedo usar elaesaClass::test como un argumento parafunction1? Estoy atascado en hacer esto.

Me gustaría acceder a un miembro de la clase.

Respuestas a la pregunta(7)

Su respuesta a la pregunta