J'ai une classe simple qui utilise une énumération pour "status". Lorsque j'utilise la fonction membre getStatus
, il retourne effectivement "Occupé" mais lorsque j'imprime la valeur, il affiche un "1". Comment puis-je imprimer "Occupé" au lieu de 1?Renvoie l'énumération au lieu de l'index
http://codepad.org/9NDlxxyU démonstration
#include <iostream>
using namespace std;
enum Status{Idle, Busy};
class text
{
public:
void SetStatus(Status s);
Status getStatus();
private:
Status s;
};
void text::SetStatus(Status s)
{
this->s = s;
}
Status text::getStatus()
{
return this->s;
}
int main()
{
text myText;
myText.SetStatus(Busy);
cout << myText.getStatus() << endl; //outputs 1, should output "Busy"
}
Non, @Nicol, ce n'est pas une copie du tout. La réponse à cette question est d'appeler la méthode 'ToString' de l'enum, que seuls les enums .Net ont, pas les enums C++ natifs. –
Ce n'est pas un doublon. OP ne demande pas une manière "automatique" pour toute énumération. Il veut savoir ce qu'il faut faire pour que cette énumération soit affichée comme souhaité. – sehe