簡體   English   中英

C ++將方法的指針數組作為參數傳遞給方法

[英]C++ passing array of pointers of methods to a method as argument

我有以下typedef:

typedef void (*Subs)(uint8_t button);

例如此數組:

 const Subs settings_sub[] = {Settings_SVA, BackToRoot};
 const uint8_t settings_size = 2;

其中“ Settings_SVA,BackToRoot”是類型的方法:

void Method_name(uint8_t button){}

現在我的問題是另一種方法,該方法使用這些數組並簡單地循環遍歷它們:

void MoveThroughItems(uint8_t button, uint8_t counter, uint8_t limit, ??? subitems) {}

我不知道正確放置“ ???”的位置 用於子項,即上述數組。

當前,我使用Subs subitems []導致錯誤:

invalid conversion from 'void (* const*)(uint8_t)' to 'void (**)(uint8_t)

並將“ void(* const *)(uint8_t)”用作類型會導致:

error: expected ',' or '...' before 'subitems'
error: 'subitems' was not declared in this scope

我被困在這里,也許我錯過了一些簡單的事情?

您需要const - const Subs subitems[]因為您定義了const Subs settings_sub[] = {Settings_SVA, BackToRoot};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM