Ho trovato informazioni sulla chiamata di puntatori di funzione membro C++ e puntatori a chiamata nelle strutture, ma ho bisogno di chiamare un puntatore a funzione membro presente all'interno di una struttura e non sono stato in grado di ottenere la sintassi corretta. Ho il seguente frammento di codice all'interno di un metodo della classe MyClass:Chiamare il puntatore funzione membro C++ da una struct
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) {
...
}
Questo mi dà:.
error: expected unqualified-id before '*' token
error: 'command' was not declared in this scope
(referring to the line '(functionMap[0].MyClass::*command)(x, y);')
Muoversi quelle parentesi intorno risultati in errori di sintassi raccomandare utilizzando * o -> * nessuno dei quali lavoro in questa situazione. Qualcuno conosce la sintassi corretta?
http://stackoverflow.com/questions/990625/c-function-pointer-class-member-to-non-static-member-function sembra correlato a questa domanda. – Rudi