Donc, j'ai cet espace de noms appelé paddleNS pour la classe appelée Paddle, à l'intérieur de paddleNS, j'ai un enum appelé couleur
namespace paddleNS
{
enum COLOUR {WHITE = 0, RED = 1, PURPLE = 2, BLUE = 3, GREEN = 4, YELLOW = 5, ORANGE = 6};
}
class Paddle : public Entity
{
private:
paddleNS::COLOUR colour;
public:
void NextColour();
void PreviousColour();
void PaddleColour(paddleNS::COLOUR col) { colour = col; }
};
Maintenant, je me demandais comment je pourrais créer une fonction qui renverrait la couleur actuelle. Y a-t-il un moyen plus simple de la renvoyer sous forme de texte plutôt que de valeur ou suis-je mieux d’utiliser un commutateur vers comprendre quelle est la couleur?
Il suffit de renvoyer l'énumération par valeur:
class Paddle : public Entity
{
// as before...
paddleNS::COLOUR currentColour() const { return colour; }
};
class Paddle : public Entity
{
// ----
const char* currentColour() const {
switch(couleur)
{
case WHITE:
return "white";
break;
//And so on
}
}
};
Conservez un tableau de chaînes où l'indix de ce tableau de chaînes correspond à la valeur enum que vous utilisez.
Donc si vous avez:
enum COLOUR {WHITE = 0, RED = 1, PURPLE = 2, BLUE = 3, GREEN = 4, YELLOW = 5, ORANGE = 6};
J'aurais alors un tableau défini:
String colors[] = {white, red, purple, blue, green, yellow, orange}
Ensuite, quand une fonction renvoie une énumération de ce type, vous pouvez simplement la mettre dans votre tableau et obtenir la couleur correcte au format chaîne.
Hé, vous pouvez créer votre fonction dans l'en-tête qui ressemble à ceci:
enum COLOUR function();
et quand vous définissez une fonction:
enum Paddle::COLOUR Paddle::function(){
// return some variable that hold enum of COLOUR
}
dans main.cpp i enter code here
pense que vous pouvez le gérer