buenas a todos veran tengo problemas al intentar compilar el codigo de abajo, lo que quiero hacer en obtener el puntero de un funcion miembro de una clase, guardarlo en la estructura y luego llamar a esa funcion... pero me esta dando problemas al compilar y no comprendo porque, probe con el puntero this pero nada, talvez usando static pero no quiero hacer todas las funciones de la clase estaticas porque son muchas y prefiero no usar static.
podria alguien decirme porque no funciona y alguna solucion? gracias
int main()
{
MiClase c1;
estructura es;
c1.funcion2(&es);
return 0;
}
prueba.h
class MiClase;
typedef int(MiClase::*puntero1)(int);
typedef struct _estructura
{
puntero1 p1;
int n1;
int n2;
int n3;
int n4;
}estructura;
class MiClase
{
public:
int funcion1(int valor);
void funcion2(estructura* datos);
int funcion3(estructura* datos);
};
prueba.cpp
#include "prueba.h"
int MiClase::funcion1(int valor)
{
return valor + 40;
}
VOID MiClase::funcion2(estructura* datos)
{
datos->p1 = funcion1;
datos->n1 = 10;
datos->n2 = 20;
datos->n3 = 30;
datos->n4 = 40;
}
int MiClase::funcion3(estructura* datos)
{
datos->p1(10);
}