O tambien usar un arreglo de punteros a funciones y usar la opcion como indice a ese arreglo
Código C++:
Ver original#include <iostream>
using namespace std;
void opcion0() {
cout << "Esta es la opcion 0" << endl;
}
void opcion1() {
cout << "Esta es la opcion 1" << endl;
}
int main() {
void (*opciones[])() = { opcion0, opcion1 };
int opcion = 0;
// Esto deberia estar en un loop para leer la opcion ...
// y luego usar la funcion correspondiente a la opcion elegida
opciones[opcion]();
// si la opcion fuera otra...
opcion = 1;
// sigue siendo valida la misma expresion
opciones[opcion]();
// hay que siempre chequear que la opcion elegida esté entre indices
// validos
opcion = 50;
if( opcion >= 0 && opcion < 2 ) {
opciones[opcion]();
}
else {
cout << "Opcion " << opcion << " no es valida" << endl;
}
}
Velo en ejecucion aqui:
http://goo.gl/J3iRtN
Tal vez es la opcion que te da mas flexibilidad pues separa el main de las funciones mismas.
Puedes cambiar la firma de las funciones para que reciban 1 o mas parametros, por ejemplo.