Structure et attributs

Signaler
Messages postés
3
Date d'inscription
vendredi 20 février 2004
Statut
Membre
Dernière intervention
21 février 2004
-
Messages postés
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
-
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

Messages postés
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
8
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)
Messages postés
3
Date d'inscription
vendredi 20 février 2004
Statut
Membre
Dernière intervention
21 février 2004

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)
Messages postés
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
8
avec une macro peur-être:

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