Wie kann ich pass eine member-Funktion, in dem eine freie Funktion erwartet wird?

Die Frage ist die folgende: betrachten Sie diese Stück 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;
}

Wie kann ich die a's aClass::test als argument zu function1? Bin ich fest dabei.

Ich würde gerne den Zugriff auf ein member der Klasse.

  • Werfen Sie einen Blick auf diese Antwort stackoverflow.com/questions/2402579/... und auch dieses C++ - FAQ parashift.com/c++-faq/pointers-to-members.html
  • Das ist absolut kein Duplikat ist (zumindest nicht von der Frage verknüpft ist). Diese Frage ist etwa, wie zu erklären, ein Mitglied, das einen Zeiger auf eine Funktion; dies ist etwa gewusst wie: übergeben Sie einen Zeiger auf eine nicht-statische member-Funktion als parameter.
Schreibe einen Kommentar