C++ énumération
Résolu
gilles81
Messages postés
72
Statut
Membre
-
Char Snipeur Messages postés 10112 Statut Contributeur -
Char Snipeur Messages postés 10112 Statut Contributeur -
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
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.
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)
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
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
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.
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.
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)