Hola, os explico lo que quiero hacer porque por el título del hilo es dificil averiguarlo jeje..
Yo quiero almacenar en una tabla los nombres o punteros a distintas funciones o procedimientos, para luego poder llamar a una función a través de la información almacenada en esa tabla, se puede hacer esto en c++?
Gracias de antemano, espero haberme explicado algo...
Sí se puede hacer, por ejemplo mediante punteros a funciones. Miratelos, pero te aviso que son un poco engorrosos de usar... Por cierto, creo que la librería boost te ofrece ciertos wrappers y elementos por el estilo para manipularlos más facilmente.
Un puntero a un método en C++, con unos parámetros de ejemplo:
int (TClase::*ptMetodo)(float, int, char) = NULL;
Te creas un typedef:
typedef int (TClase::*ptMetodo)(float, int, char);
Y luego el array:
ptMetodo miArray[100] = NULL;
Los tendrás que inicializar con la dirección de los métodos que desees y luego para usarlos:
(*miArray[3])(40.0f, 7, 'a');
No estoy seguro de si esto funciona:
miArray[3](40.0f, 7, 'a');
Saludos.
Hace mucho q no lo uso, pero creo recordar que habria que usar miArray[3]->Invoke(40.0f, 7, 'a');
SUERTE ^^
Invoke? Mmmm, creo que te has confundido con el C#. No es ese el mecanismo de los delegates?
Argh, una "->" en C#, dios me salve! :p
Bueno bueno, yo lo decia por el "invoke" :oops: El -> es claramente de C/C++ ;)
Cierto, el invoke es de los delegados....pero respecto a c# te confundes, los delegados son "tecnologia" del .net, no son exclusivos de c# que como bien te dijeron, en # el -> es sacrilegio xDD
SALUDOS ^^
Muchisimas gracias a todos por las respuestas, en cuanto salga del trabajo lo pondré en práctica y ya os contaré si lo consigo o no.
Saludoss