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

Fermé
Utilisateur anonyme - 13 févr. 2020 à 03:24
Dalfab Messages postés 706 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 2 novembre 2023 - 13 févr. 2020 à 14:10
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 dimanche 7 février 2016 Statut Membre Dernière intervention 2 novembre 2023 101
13 févr. 2020 à 14:10
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 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
13 févr. 2020 à 09:20
bonjour, as-tu testé sans utiliser enum, pour t'assurer que le problème venait de là?
0
Utilisateur anonyme
13 févr. 2020 à 12:05
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