Peut-on mettre plusieurs valeurs dans un énuméré en C++ ?
Utilisateur anonyme
-
Dalfab Messages postés 638 Date d'inscription Statut Membre Dernière intervention -
Dalfab Messages postés 638 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 !
--
-QPPJ-
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 !
--
-QPPJ-
3 réponses
-
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 écrisUP=(-1,0),
, tu utilises l'opérateur virgule et ça revient exactement à écrireUP = 0 ,
(et le compilateur doit d'indiquer un bel avertissement indiquant que le1
est totalement ignoré. -
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
bonjour, as-tu testé sans utiliser enum, pour t'assurer que le problème venait de là? -
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++...