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
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
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
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.
Sinon, gilles, ton problème est mal posé, comprend pas ce que tu veux.
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
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)
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)
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
7 nov. 2008 à 12:19
où est le problème ?
Tu fait aktPosition=position; non ?
Tu fait aktPosition=position; non ?
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
7 nov. 2008 à 12:23
et si le paramètre entré n'appartient pas a l'énumeration?
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
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.
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.
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
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
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
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
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.
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
7 nov. 2008 à 13:09
comment crée donc mon objet avec une mèthode tel que déclarée la haut
merci
merci
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
7 nov. 2008 à 13:52
CSpieler a(...);
a.setPosition(...);
Je ne comprends pas ce qui te dérange.
a.setPosition(...);
Je ne comprends pas ce qui te dérange.
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
7 nov. 2008 à 14:04
merci pour ton aide
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
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.
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.
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
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...
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...
6 nov. 2008 à 09:45
6 nov. 2008 à 10:31
7 nov. 2008 à 01:14
7 nov. 2008 à 12:04
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)