簡體   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