C++ noms de variable variables

Résolu
Ajent J Messages postés 4 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 26 novembre 2005 - 26 nov. 2005 à 20:29
sydis Messages postés 1 Date d'inscription jeudi 27 janvier 2005 Statut Membre Dernière intervention 6 avril 2006 - 6 avril 2006 à 09:51
Est ce qu'il est possible de construire un nom de variable par concatenation comme en PHP ?

for(int j=0;j<10;i++)
{
${"mavariable".$i} = rand( );
}

Y'a t'il un moyen de faire ça en C++ ?

7 réponses

vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
26 nov. 2005 à 23:28
for(int i = IDC_CTL1; i <= CTRL?; i++)
{
//...
}
3
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
26 nov. 2005 à 20:35
Non. Mais en gros, c'est un tableau ce que tu veux faire.
0
Ajent J Messages postés 4 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 26 novembre 2005
26 nov. 2005 à 20:40
J'aurais bien voulu que ca soit un tableau.
Mais c'est vrai que c'est un peu le principe sauf que toute les variables mavariableX existent déjà et que je peux pas les supprimer pour faire un tableau puisque ce sont des ID de contrôles MFC.
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
26 nov. 2005 à 22:56
Tu devrais modifier ton fichier resource.h pour que tes ID soient consécutifs (attention quand même a ne pas avoir d'ID dupliqués). Tu pourra alors facilement utiliser une boucle for
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Ajent J Messages postés 4 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 26 novembre 2005
26 nov. 2005 à 23:17
Ils sont consécutifs mais je vous pas comment utiliser une boucle for sur des ID justement.

DDX_Text(pDX, IDC_i, Jours[ ((prem_jour-1)+i)%7 ]);

Il faudrait que puisse faire un truc dans ce gout dans ma boucle et que i soit remplacé par sa valeur.
Mais le je ne vois pas comment faire pour le IDC_i.
0
Ajent J Messages postés 4 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 26 novembre 2005
26 nov. 2005 à 23:35
Oki merci beaucoup c'est capiche ^^
0
sydis Messages postés 1 Date d'inscription jeudi 27 janvier 2005 Statut Membre Dernière intervention 6 avril 2006
6 avril 2006 à 09:51
Bonjour,
Construire un nom de variable ou de fonction par concaténation est possible !
(mais pas très utile pour l'exemple de Ajent J)
Parfois, il y a un moyen de raccourcir le code à écrire en utilisant le double dièse du précompilateur :

#define MON_BOUT_DE_CODE_A_REPETER(SUFFIXE)\
for(int i=0; i<2; i++)\
{\
maVariable##SUFFIXE = un_pointeur_objet_##SUFFIXE->un_membre;\
un_autre_truc_qui_a_besoin_du##SUFFIXE = autre_chose_encore;\
...\
}
//toujours mettre des back-slash à chaque fin de ligne,
//sauf la dernière, pour continuer la ligne de définition
/**************/
ma_fonction(int truc)
{
switch(truc)
{
case 1:
MON_BOUT_DE_CODE_A_REPETER(suffixe1)
break;
case 2:
MON_BOUT_DE_CODE_A_REPETER(suffixe2)
break;
}
...
}
Dommage qu'on ne puisse pas mettre une variable en paramètre, cela aurait aidé l'Ajent J !!!
0
Rejoignez-nous