Bueno, resulta que estoy intentando crear un array con una estructura que almacene un nombre y una "función"
En Python estoy acostumbrado a que todo se guarde como una dirección de memoria y quede muy bonito y muy sencillo, pero con C++ estoy teniendo problemas a la hora de intentar guardar una función miembro dentro del campo para funciones de la estructura.
(Perdón si no me expreso muy bien con los términos pero es que soy autodidacta y todavía no he llegado a distinguir esos matices del todo XDD
Bueno aquí les dejo el código que me tira el error en cuestión
#include<iostream>
using namespace std;
class foo {
public:
foo();
typedef struct {
string nombre;
void *funcion();
} lista_nombres;
void function()
{
cout<<"hola mundo"<<endl;
}
void function2()
{
cout<<"hola mundo 2"<<endl;
}
lista_nombres list[2];
};
foo::foo()
{
list[0].nombre="uno";
list[0].funcion=&function;
list[1].nombre="dos";
list[1].funcion=&function2;
list[0].funcion();
list[1].funcion();
}
int main()
{
foo elemento();
}
El error que me tira es este:
prueba.cpp: In constructor ‘foo::foo()’:
prueba.cpp:32: error: ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to member function. Say ‘&foo::function’
prueba.cpp:32: error: invalid use of member (did you forget the ‘&’ ?)
prueba.cpp:34: error: ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to member function. Say ‘&foo::function2’
prueba.cpp:34: error: invalid use of member (did you forget the ‘&’ ?)
He intentado seguir las sugerencias del compilador pero... sin resultados.
Muchas gracias de antemano