14

したがって、paddle と呼ばれるクラスの paddleNS と呼ばれるこの名前空間があり、paddleNS 内に 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; }
};

さて、私が疑問に思っていたのは、現在の色を返す関数を作成するにはどうすればよいか、値の代わりにテキスト形式で返す簡単な方法があるか、または単にスイッチを使用する方がよいかということです何色か分かりますか?

4

4 に答える 4

17

列挙型を値で返すだけです:

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

  paddleNS::COLOUR currentColour() const { return colour; }
};
于 2013-04-20T09:37:57.390 に答える
1

この文字列配列のインデックスが、使用している列挙値と一致する文字列配列を保持します。

あなたが持っている場合:

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

次に、配列を定義します。

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

次に、関数がこのタイプの列挙型を返すようにすると、それを配列に入れるだけで、正しい色を文字列形式で取得できます。

于 2014-07-14T20:14:27.160 に答える
1
class Paddle : public Entity
{
  // ----

  const char* currentColour() const { 
switch(couleur)
{
 case WHITE:
   return "white";
   break;
//And so on
}
}
};
于 2013-04-20T09:49:52.167 に答える