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

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

本文关键字:方法 参数传递 数组 指针 C++      更新时间:2023-10-16

我有以下类型定义:

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 子项 [],这会导致错误:

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};