Rechercher : dans
Par :

C++ énumération

Dernière réponse le 7 nov 2008 à 14:13:50 gilles81, le 5 nov 2008 à 22:20:00 
 Signaler ce message aux modérateurs

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

Configuration: Windows Vista
Firefox 3.0.3

Meilleures réponses pour « c++ énumération » dans :
La compilation et les modules en C et en C++ VoirCet article a pour vocation d'introduire les notions de bases de la compilation en C et en C++ et de la programmation modulaire. Il permet de mieux comprendre les messages d'erreur du compilateur. Les notions abordées ici sont indépendantes du...
[Langage C] C/C++ Erreur de segmentation VoirQu'est ce qu'une erreur de segmentation Vous êtes en train de développer une application sous Linux en C/C++. Tout va bien, ça compile, les oiseaux chantent. Donc vous lancez votre application pour la tester. Et vous obtenez l'un de ces deux...
Les piles en langage C VoirLes piles Requis I. INTRODUCTION II. Définition III. La construction du prototype d'un élément de la pile IV. Opérations sur les piles A. Initialisation B. Insertion d'un élément dans la pile C. Ôter un élément de la pile D. Affichage...
Télécharger Visual C++ Express VoirVisual C++ Express est une version "gratuite" et allégée de Visual Studio ; l'utilisation requiert l'inscription sur le site de Microsoft. Cet environnement de développement permet de créer des application Win32 ou du .NET C.
Langage C++ - Les types de données VoirLes types de données Les données manipulées en langage C++, comme en langage C, sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître...
Les chaînes de caractères en C++ VoirQu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C++, une...
Les structures en langage C VoirDifférence entre une structure et un tableau Un tableau permet de regrouper des éléments de même type, c'est-à-dire codés sur le même nombre de bits et de la même façon. Toutefois, il est généralement utile de pouvoir rassembler des éléments de...

1

La Viande, le 6 nov 2008 à 01:14:07

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...
Papa, maman, j'aime la viande....

Répondre à La Viande

2

Char Snipeur, le 6 nov 2008 à 08:17:50

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. Salutation !
Char Snipeur

Répondre à Char Snipeur

3

La Viande, le 6 nov 2008 à 09:45:53

J'ai un doute là. En C oui mais en C++ je sais pas trop. Papa, maman, j'aime la viande....

Répondre à La Viande

4

fiddy, le 6 nov 2008 à 10:31:11

Oui en C, tu dois utiliser enum même pour la déclaration. En C++, c'est facultatif.
Google is your friend

Répondre à fiddy

5

La Viande, le 7 nov 2008 à 01:14:19

Ah ok, merci pour le renseignement. Papa, maman, j'aime la viande....

Répondre à La Viande

7

gilles81, le 7 nov 2008 à 12:04:31

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)

Répondre à gilles81

6

gilles81, le 7 nov 2008 à 11:59:14

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)

Répondre à gilles81

8

Char Snipeur, le 7 nov 2008 à 12:19:34

Où est le problème ?
Tu fait aktPosition=position; non ? Salutation !
Char Snipeur

Répondre à Char Snipeur

9

gilles81, le 7 nov 2008 à 12:23:10

Et si le paramètre entré n'appartient pas a l'énumeration?

Répondre à gilles81

10

Char Snipeur, le 7 nov 2008 à 12:40:18

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. Salutation !
Char Snipeur

Répondre à Char Snipeur

11

gilles81, le 7 nov 2008 à 12:51:39

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

Répondre à gilles81

12

Char Snipeur, le 7 nov 2008 à 12:56:46

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. Salutation !
Char Snipeur

Répondre à Char Snipeur

13

gilles81, le 7 nov 2008 à 13:09:30

Comment crée donc mon objet avec une mèthode tel que déclarée la haut

merci

Répondre à gilles81

14

Char Snipeur, le 7 nov 2008 à 13:52:47

CSpieler a(...);
a.setPosition(...);
Je ne comprends pas ce qui te dérange. Salutation !
Char Snipeur

Répondre à Char Snipeur

15

gilles81, le 7 nov 2008 à 14:04:42

Merci pour ton aide

Répondre à gilles81

16

 Char Snipeur, le 7 nov 2008 à 14:13:50

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. Salutation !
Char Snipeur

Répondre à Char Snipeur