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

Signaler
Messages postés
4
Date d'inscription
mardi 12 février 2019
Statut
Membre
Dernière intervention
13 février 2020
-
Dalfab
Messages postés
433
Date d'inscription
dimanche 7 février 2016
Statut
Membre
Dernière intervention
13 février 2020
-
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

Messages postés
433
Date d'inscription
dimanche 7 février 2016
Statut
Membre
Dernière intervention
13 février 2020
53
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é.
Messages postés
9596
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
14 février 2020
522
bonjour, as-tu testé sans utiliser enum, pour t'assurer que le problème venait de là?
Messages postés
4
Date d'inscription
mardi 12 février 2019
Statut
Membre
Dernière intervention
13 février 2020

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++...