Вызов функции C ++ с использованием члена класса и запуск его в main - PullRequest
1 голос
/ 30 марта 2020

Я знаю, многие посты спрашивают об этом, читали около 10 постов с длинными ответами, но каждый пост выглядит по-разному и требует различной реализации.

Итак, что я здесь не так сделал?

#include <iostream>
using namespace std;
class Foo {
   public:
    void callbackFunc(void (*funcParam1)());
    void funcA();

};
void Foo::callbackFunc(void (*funcParam1)()) {
    funcParam1();
}
void Foo::funcA() { cout << "func A OK.." << endl; }
void aa(){
    int x =0;
}
Foo bar;
int main() { bar.callbackFunc(bar.funcA); }


этот пример добавляет error: invalid use of non-static member function ‘void Foo::funcA()’ в main(), особенно в параметре callbackFunc.

Я хочу использовать его в Arduino позже.

1 Ответ

2 голосов
/ 30 марта 2020

Вы можете избежать ошибки с помощью static funcA:

static void funcA();

Похоже, проблема в том, что ваш callbackFunc ожидает указатель функции, но функция-член funcA не является нормальной функцией и ожидает, что объект для начала. Если сделать это static, то это уйдет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...