C ++将方法指针数组传递给方法作为参数

时间:2014-12-14 17:36:52

标签: c++ arrays pointers methods

我有以下typedef:

typedef void (*Subs)(uint8_t button);

例如这个数组:

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

Where" Settings_SVA,BackToRoot"是类型的方法:

void Method_name(uint8_t button){}

现在我的问题是一个不同的方法,它使用这些数组并简单地遍历它们:

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

我不知道该怎样正确地放置' ???对于子项目,这是上面提到的数组。

目前我使用Subs子项[]导致错误:

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

我几乎被困在这里,也许我错过了一些简单的事情?

1 个答案:

答案 0 :(得分:3)

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