Peut-on mettre plusieurs valeurs dans un énuméré en C++ ?

Utilisateur anonyme -  
Dalfab Messages postés 706 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Voici mon code :

--------- Direction.h------------------

#ifndef DIRECTION_H
#define DIRECTION_H

class Direction{

public:
enum sens {
UP=(-1,0),
DOWN=(1,0),
LEFT=(0,-1),
RIGHT=(0,1),
UP_RIGHT=(-1,1),
UP_LEFT=(-1,-1),
DOWN_RIGHT=(1,1),
DOWN_LEFT=(1,-1)
};

private:
int x, y;

public:
Direction(int x, int y) {
this->x = x;
this->y = y;
}
int getX(){
return x;
}
int getY(){
return y;
}
};

#endif // DIRECTION_H

------- Direction.h ------------

------- Main.cpp ------------

#include <iostream>
#include "Direction.h"

using namespace std;

int main()
{
cout << "Hello World!" << endl;

Direction::sens c = Direction::UP_LEFT;

cout << c << endl;
return 0;
}

----- Main.cpp --------

Lorsque je lance le programme il me retourne -1 alors que normalement il devrait m'envoyer -1, -1

J'aimerais savoir comment faire pour mettre deux valeurs dans un énuméré.

Merci d'avance !

3 réponses

Dalfab Messages postés 706 Date d'inscription   Statut Membre Dernière intervention   101
 
Les seules possibilités pour un enum sont des types intégraux ou caractères (bool, char, wchar_t, int, long, long long, ...)

Quand tu écris
UP=(-1,0),
, tu utilises l'opérateur virgule et ça revient exactement à écrire
UP = 0 ,
(et le compilateur doit d'indiquer un bel avertissement indiquant que le
1
est totalement ignoré.
1
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonjour, as-tu testé sans utiliser enum, pour t'assurer que le problème venait de là?
0
Utilisateur anonyme
 
En fait, je souhaite mettre dans une enum, plusieurs valeurs. Mais je ne sais pas comment faire. En java c'est assez simple par contre pour c++...
0