Structure et attributs

cm0s Messages postés 3 Date d'inscription vendredi 20 février 2004 Statut Membre Dernière intervention 21 février 2004 - 20 févr. 2004 à 15:09
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 - 21 févr. 2004 à 13:19
Hello,

J'ai une ptite question est-il possible de remplacer un attribut par une variable quand on fait appele a une structure, je m'explique:

cout << (chTable+1)->chPrenom; //ici j'affiche le prenom contenu dans un tableau de type structuré.

Mais imaginons que je veuille mettre cette ligne dans une fonction et passer en paramêtre en attribut, exemple:

void (MaStructure * ptTable, char * ptAttribute)
{
cout << (chTable+1)->chAttribute; //ptAttribut pointe sur
une variable contenant soit "chPrenom" ou soit "chNom".

Je sais que la syntax est fausse met c'est juste pour
expliquer mon problème.
}

Merci d'avance !!!

3 réponses

ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
20 févr. 2004 à 18:10
fait un enum des champs que tu souhaite afficher
enum noms
{
EPrenom,
ENom,
...
};

dans ta fonction d'affichage tu fait un siwtch :
void affich(MyStruc* struct, noms n)
{
switch(n)
{
case EPrenom :
case ENom :
..
}
}

pour appeler :
affich(struc EPrenom);

c'est la méthode qui me vient à l'esprit (y' en a surement d'autres)
0
cm0s Messages postés 3 Date d'inscription vendredi 20 février 2004 Statut Membre Dernière intervention 21 février 2004
20 févr. 2004 à 20:49
Merci beaucoup pour ta réponse, mais je crois que je ne me suis pas bien exprimé.

Imaginons que j'ai une fonction :

void affiche(MyStruct * struct, nom n)
{
cout << struct+1->nom n; // C'est faut mais c pour comprendre le principe.
}

J'aimerais ne pas avoir à écrire un cout différent pour chaque case correspondante.

Mais j'imagine que ce n'est pas possible de faire ça. En résumé j'aimerais remplacer le champ (qui vient après le ->) par une variable. De cette manière si j'ai une structure de 6 éléments je n'ai pas à écrire un switch avec 6 cout << ...

Merci d'avance :big)
0
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
21 févr. 2004 à 13:19
avec une macro peur-être:

#define AFFICH(myStruct, champ) cout<<mystruc->champ;
0
Rejoignez-nous