Я нашел информацию о вызове указателей на функции-члены C ++ и вызове указателей в структурах, но мне нужно вызвать указатель на функцию-член, который существует внутри структуры, и я не смог получить правильный синтаксис.У меня есть следующий фрагмент внутри метода в классе MyClass:
void MyClass::run() {
struct {
int (MyClass::*command)(int a, int b);
int id;
} functionMap[] = {
{&MyClass::commandRead, 1},
{&MyClass::commandWrite, 2},
};
(functionMap[0].MyClass::*command)(x, y);
}
int MyClass::commandRead(int a, int b) {
...
}
int MyClass::commandWrite(int a, int b) {
...
}
Это дает мне:
error: expected unqualified-id before '*' token
error: 'command' was not declared in this scope
(referring to the line '(functionMap[0].MyClass::*command)(x, y);')
Перемещение этих круглых скобок приводит к ошибкам синтаксиса, рекомендуя использовать. * Или -> *ни один из которых не работает в этой ситуации.Кто-нибудь знает правильный синтаксис?