llamar a función cuyo nombre esta en una variable como string
Publicado por gaston (2 intervenciones) el 22/11/2014 21:16:06
Buenas!
Gente estoy intentando hacer unas clases genéricas (para una especie de ORM) y me encontré con la siguiente traba:
necesito poder llamar a una función o método de una clase c++, que previamente ingrese o puse en una variable o lei de un xml:
using namespace std;
void getName()
{
return "nombre";
}
int main()
{
string nombre;
cin >> nombre; //por consola ingrese "getName"
cout << "resultado de la llamada " + nombre(); << endl;
return 0;
}
Obviamente este código no funciona, es para representar lo que quiero hacer a grandes rasgos, osea poder llamar a una funcion de c++ que defini en un string o del flujo de entrada.
No me sirve esto:
void callFunction(string name)
{
if (name == "getName") {
getName();
} else if (name == "getApellido") {
getApellido();
}
}
en otros lenguajes como php se puede hacer esto:
function nombre_metodo() { return 0;}
$variable = "nombre_metodo";
$variable(); //esto llamara a un metodo cuyo nombre sea igual al definido en la variable!
alguien tiene alguna idea? gracias desde ya.
Gente estoy intentando hacer unas clases genéricas (para una especie de ORM) y me encontré con la siguiente traba:
necesito poder llamar a una función o método de una clase c++, que previamente ingrese o puse en una variable o lei de un xml:
using namespace std;
void getName()
{
return "nombre";
}
int main()
{
string nombre;
cin >> nombre; //por consola ingrese "getName"
cout << "resultado de la llamada " + nombre(); << endl;
return 0;
}
Obviamente este código no funciona, es para representar lo que quiero hacer a grandes rasgos, osea poder llamar a una funcion de c++ que defini en un string o del flujo de entrada.
No me sirve esto:
void callFunction(string name)
{
if (name == "getName") {
getName();
} else if (name == "getApellido") {
getApellido();
}
}
en otros lenguajes como php se puede hacer esto:
function nombre_metodo() { return 0;}
$variable = "nombre_metodo";
$variable(); //esto llamara a un metodo cuyo nombre sea igual al definido en la variable!
alguien tiene alguna idea? gracias desde ya.
Valora esta pregunta


0