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 :
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 )
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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... } }
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 } }
Partager