it-swarm.com.de

c ++ - Funktion, um eine Aufzählung zurückzugeben?

Also habe ich diesen Namespace namens paddleNS für die Klasse namens Paddle, in paddleNS habe ich eine Aufzählung namens color

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; }
};

Nun, was ich mich gefragt habe, ist, wie ich vorgehen soll, um eine Funktion zu erstellen, die die aktuelle Farbe zurückgibt. Es gibt auch eine einfachere Möglichkeit, sie in Textform anstelle eines Werts zurückzugeben, oder ich verwende lieber nur einen Schalter Finde heraus, was die Farbe ist?

10
Andy

Gib die Aufzählung einfach nach Wert zurück:

class Paddle : public Entity
{
  // as before...

  paddleNS::COLOUR currentColour() const { return colour; }
};
14
juanchopanza
class Paddle : public Entity
{
  // ----

  const char* currentColour() const { 
switch(couleur)
{
 case WHITE:
   return "white";
   break;
//And so on
}
}
};
1
Husam Bdr

Behalten Sie ein Array von Zeichenfolgen bei, bei dem das Indix in diesem String-Array mit dem verwendeten Enumerationswert übereinstimmt.

Wenn Sie also 

enum COLOUR {WHITE = 0, RED = 1, PURPLE = 2, BLUE = 3, GREEN = 4, YELLOW = 5, ORANGE = 6};

Ich hätte dann ein Array definiert:

String colors[] = {white, red, purple, blue, green, yellow, orange}

Wenn Sie dann eine Funktion haben, die ein Enum dieses Typs zurückgibt, können Sie sie einfach in Ihr Array einfügen und die richtige Farbe im String-Format erhalten. 

1
aaron burns

Hey, du kannst deine Funktion im Header so gestalten, dass sie so aussieht:

enum COLOUR function();

und wenn Sie eine Funktion definieren:

enum Paddle::COLOUR Paddle::function(){
        // return some variable that hold enum of COLOUR
}

in main.cpp enter code herethink können Sie es verwalten

0
Marko Ljuboja