Funktion als Parameter

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Funktion als Parameter

    Hiho.

    wollte mal wissen, wie ich ne Member-Funktion als Parameter übergebe?

    Bisher war stepCallback aus dem unteren Abschnitt als Klassen-Funktion definiert, ich mußte das allerdings ändern. Jetzt moniert der Compiler einen undefinierten Datentyp (2. Zeile). Ich hoffe die 4 (relevanten) Code-Zeilen reichen, um mein Problem zu schildern...

    Quellcode

    1. static void stepCallback(void* userData);
    2. quartzModuleWithTowerCom = new PC_qt(this, this->stepCallback, this);
    3. typedef void (*cycleCallback_t) (void* userData);
    4. PC_qt(QObject *parent, cycleCallback_t cycleCallback, void* userData);

    Da ich mich erst vor kurzem in C++ reingearbeitet habe (und aus der Java-Welt komme), steh ich erstmal auf dem Schlauch.
  • RE: Funktion als Parameter

    Original von reimer
    Hiho.

    wollte mal wissen, wie ich ne Member-Funktion als Parameter übergebe?

    Aus Sicht eines langjährigen C++ Programmierers: gar nicht, es ist ziemlich sinnlos.
    Wenn man Callbacks für C-APIs braucht dann müssen dies Funktionen sein, die als "extern C" deklariert wurden, da sie sonst einen andere ABI haben und sie sonst nicht portabel ist.

    Wenn man für C++ Zwecke so etwas braucht, dann nimmt man einen Funktor.