C++ énumération

Résolu/Fermé
gilles81 Messages postés 67 Date d'inscription mardi 20 mai 2008 Statut Membre Dernière intervention 29 juillet 2009 - 5 nov. 2008 à 22:20
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 7 nov. 2008 à 14:13
Bonjour,
j'ai crée une énumération enum E_POSITION {Torwart, Abwehr, Mittelfeld, Sturm} et je veux créer une méthode qui me permet d'initialiser E_POSITION, pour cela j'ai crée la méthode suivante:

bool SetPosition(E_POSITION position){
for(E_POSITON p = Torwart;p<=Sturm;p++){
...............
}

comment puis je récupérer les résultats de ma boucle et vérifier que le paramètre qui sera entrer figure bien dans mon énumération.
merci

9 réponses

Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
6 nov. 2008 à 08:17
hum... Es tu sur qu'en C++ il faille préciser "enum" devant le type ???
Sinon, gilles, ton problème est mal posé, comprend pas ce que tu veux.
0
La Viande Messages postés 50 Date d'inscription lundi 3 novembre 2008 Statut Membre Dernière intervention 9 mars 2009
6 nov. 2008 à 09:45
J'ai un doute là. En C oui mais en C++ je sais pas trop.
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 845 > La Viande Messages postés 50 Date d'inscription lundi 3 novembre 2008 Statut Membre Dernière intervention 9 mars 2009
6 nov. 2008 à 10:31
Oui en C, tu dois utiliser enum même pour la déclaration. En C++, c'est facultatif.
0
La Viande Messages postés 50 Date d'inscription lundi 3 novembre 2008 Statut Membre Dernière intervention 9 mars 2009 > fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022
7 nov. 2008 à 01:14
Ah ok, merci pour le renseignement.
0
gilles81 Messages postés 67 Date d'inscription mardi 20 mai 2008 Statut Membre Dernière intervention 29 juillet 2009 1 > La Viande Messages postés 50 Date d'inscription lundi 3 novembre 2008 Statut Membre Dernière intervention 9 mars 2009
7 nov. 2008 à 12:04
c++ énumération

salut ,
je reformule ma question.Je dispose d'une clase CSpieler ayant les attributs suivants:

char vorname[cMaxStrLength];
char nachname[cMaxStrLength];
char geboren[cMaxStrLength];
unsigned int groesse_cm;
unsigned int gewicht_kg;
unsigned int aktNummer;
char aktVerein[cMaxStrLength];
unsigned int aktVereinSeit_jahr;
E_POSITION aktPosition;

et une énumeration enum E_POSITION {Torwart, Abwehr, Mittelfeld, Sturm};

j'ai initialisé certains de ces attributs dans le constructeur:

CSpieler::CSpieler(char* vor, char* nachname, char* geboren, unsigned int groesse, unsigned int gewicht){
cMaxStrLength=20;
strncpy(vor,vorname,cMaxStrLength);
groesse_cm=groesse;
gewicht_kg =gewicht;
}

et pour d'autres tel que aktPosition je veux utiliser une setméthode:
bool SetPosition(E_POSITION position)
0
gilles81 Messages postés 67 Date d'inscription mardi 20 mai 2008 Statut Membre Dernière intervention 29 juillet 2009 1
7 nov. 2008 à 11:59
salut ,
je reformule ma question.Je dispose d'une clase CSpieler ayant les attributs suivants:

char vorname[cMaxStrLength];
char nachname[cMaxStrLength];
char geboren[cMaxStrLength];
unsigned int groesse_cm;
unsigned int gewicht_kg;
unsigned int aktNummer;
char aktVerein[cMaxStrLength];
unsigned int aktVereinSeit_jahr;
E_POSITION aktPosition;

et une énumeration enum E_POSITION {Torwart, Abwehr, Mittelfeld, Sturm};

j'ai initialisé certains de ces attributs dans le constructeur:

CSpieler::CSpieler(char* vor, char* nachname, char* geboren, unsigned int groesse, unsigned int gewicht){
cMaxStrLength=20;
strncpy(vor,vorname,cMaxStrLength);
groesse_cm=groesse;
gewicht_kg =gewicht;
}

et pour d'autres tel que aktPosition je veux utiliser une setméthode:
bool SetPosition(E_POSITION position)
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
7 nov. 2008 à 12:19
où est le problème ?
Tu fait aktPosition=position; non ?
0
gilles81 Messages postés 67 Date d'inscription mardi 20 mai 2008 Statut Membre Dernière intervention 29 juillet 2009 1
7 nov. 2008 à 12:23
et si le paramètre entré n'appartient pas a l'énumeration?
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
7 nov. 2008 à 12:40
Tu sais que en fait, une enum c'est :
E_POSITION {Torwart=0, Abwehr=1, Mittelfeld=2, Sturm=3}
Donc, si tu passe unn entier inférieur à 0 et supérieur à 3, tu sais qu'il n'est pas bon.
Après, je ne connais pas de méthode directe genre E_POSITION.size() pour tester les bornes.
0

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

Posez votre question
gilles81 Messages postés 67 Date d'inscription mardi 20 mai 2008 Statut Membre Dernière intervention 29 juillet 2009 1
7 nov. 2008 à 12:51
Quand on appelle une classe dans une autre avec "new" est on obligé comme dans java t'initialiser tous les parmètres du constructeur de la classe? Si je veux par exemple créer une instance de CSpieler dans une autre classe,suis-je obligé de: CSpieler c = new CSpieler("herve",.............)?ou exite t il un constructeur par défaut genre CSpieler c = new CSpieler().

Comment faire si je veux plutôt créer mon object dans une mèthode du genre

bool AddSpieler(char* vorname, char* nachname,
char* geboren, unsigned int groesse, unsigned int gewicht,
unsigned int nummer, char* verein, unsigned int seit,
E_POSITION position)

vu que dans mon constructeur CSpieler je n'ai pas initialisé tous les attributs

merci
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
7 nov. 2008 à 12:56
Tu as raison, tu as par défaut un constructeur sans argument, mais il me semble (à vérifier, les règles ne sont pas évidente) qu'il n'est pas mis si tu définis un autre constructeur.
0
gilles81 Messages postés 67 Date d'inscription mardi 20 mai 2008 Statut Membre Dernière intervention 29 juillet 2009 1
7 nov. 2008 à 13:09
comment crée donc mon objet avec une mèthode tel que déclarée la haut

merci
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
7 nov. 2008 à 13:52
CSpieler a(...);
a.setPosition(...);
Je ne comprends pas ce qui te dérange.
0
gilles81 Messages postés 67 Date d'inscription mardi 20 mai 2008 Statut Membre Dernière intervention 29 juillet 2009 1
7 nov. 2008 à 14:04
merci pour ton aide
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
7 nov. 2008 à 14:13
J'espère que tu t'en sortira.
Je suis tout à fait pret à t'aider, mais je ne comprends vraiment pas où est ton souci. Peut être en étant plus concret, avec un morceau de code.
0
La Viande Messages postés 50 Date d'inscription lundi 3 novembre 2008 Statut Membre Dernière intervention 9 mars 2009
6 nov. 2008 à 01:14
Bonjour Gilles81,

Pour commencer, je tiens à te dire que je refuse d'aider les végétariens. Bon je pars du principe que tu es amateur de bons filets: présomption d'innocence.

D'abord, ton type, ce n'est pas E_POSITION mais enum E_POSITION.

Ensuite, hélas je ne comprends pas ton problème...
-1