繁体   English   中英

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

[英]C++ Function Callback using class member and run it in main

我知道,很多帖子都在问这个问题,阅读了大约 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()error: invalid use of non-static member function 'void Foo::funcA()'特别是在callbackFunc参数中。

我想稍后在 arduino 中使用它。

您可以通过static funcA错误:

static void funcA();

看起来问题是你的callbackFunc需要一个函数指针,但成员函数funcA不是一个普通的函数并且需要一个对象开始。 将其static可以解决问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM