He encontrado información sobre llamar a punteros de función miembro de C++ y llamar punteros en estructuras, pero necesito llamar a un puntero de función miembro que existe dentro de una estructura, y no he podido obtener la sintaxis correcta Tengo el siguiente fragmento de código dentro de un método en la clase MyClass:Llamando al puntero de función miembro de C++ desde una estructura
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) {
...
}
Esto me da:.
error: expected unqualified-id before '*' token
error: 'command' was not declared in this scope
(referring to the line '(functionMap[0].MyClass::*command)(x, y);')
Mover los paréntesis alrededor de los resultados en los errores de sintaxis que recomiendan el uso de * o -> * ninguno de los cuales el trabajo en esta situación. ¿Alguien sabe la sintaxis correcta?
http://stackoverflow.com/questions/990625/c-function-pointer-class-member-to-non-static-member-function parece relacionado con esta pregunta. – Rudi