Création de variable avec un type variable !
Bonjour à tous,
Je cherche à écrire une fonction qui prenne en argument le string 'type', qui doit être choisi dans la liste : char, short int, int, float etc... (vous m'avez compris), et qui déclare une variable 'x' du type choisi.
Simplissime !?
Et pourtant je n'y arrives absolument pas !
Enfin ce n'est pas exacte, un truc de ce style peut marcher :
Code:
1 2 3 4 5 6 7 8
|
if ( "char".compare(type) == 0)
{
char x; else if ( "short int".compare(type) ==0 )
{
short int x; else if (blablabla...
}
} |
Mais je n'insiste pas, vous avez compris : c'est lourd et en plus ça compile très difficilement ( i.e : que si 'x' est déclaré au préalable, quitte à la re-déclarée, parce que sinon la construction conditionnelle ne permet pas à 'x' d'être déclarée à coup sur... ou en tout cas c'est ce que pense le compilateur )
J'ai cherché partout de l'aide sur le sujet, genre comment déclarer les variables, typer les variables etc etc, mais toutes les aides que je trouve se référent à des trucs bateaux du style "int myfirstvariable" ou autre...
Si quelqu'un à une solution toute faite à me mettre sous le nez (même un bout de tuto ou un truc qui m'avance), ou alors une petite idée je suis preneur.
Merci beaucoup d'avance,
Cordialement,
Mark.
PS : ci-dessous l'ersatz de code que j'ai déjà écrit ; J'ai marqué et mis en commentaire le morceau qui est évidemment faux, mais il montre bien ce que je cherches à faire au moins ... vous voyez non ?
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
string type;
string names[] = {"char", "short int", "int", "float", "double"};
printf("Chose type of stack among : char, short int, int, float, double\n");
getline( cin, type);
for (int i=0; i < 5; i++)
{
if ( names[i].compare( type ) == 0 )
{
//names[i] s; <-- Le problème est ici
}
} |