[C ++函数回调,使用类成员并在main中运行

问题描述 投票:0回答:1

[我知道,许多帖子对此都有疑问,一直在阅读大约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中使用它。

c++ function class arduino callback
1个回答
1
投票

您可能会因static funcA的错误而逃脱:

static void funcA();

看起来像是您的callbackFunc需要一个函数指针,但是成员函数funcA不是普通的函数,并且希望对象以它开头。设为static可以解决问题。

© www.soinside.com 2019 - 2024. All rights reserved.