14

所以我有一个名为 paddleNS 的命名空间,用于名为 paddle 的类,在 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; }
};

现在,我想知道的是我将如何创建一个函数来返回当前的颜色,还有一种更简单的方法可以以文本形式而不是值返回它,还是我最好只使用 switch弄清楚颜色是什么?

4

4 回答 4

17

只需按值返回枚举:

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

  paddleNS::COLOUR currentColour() const { return colour; }
};
于 2013-04-20T09:37:57.390 回答
4

嘿,您可以在标题中创建如下所示的函数:

enum COLOUR function();

当你定义一个函数时:

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

在 main.cpp 我enter code here认为你可以管理它

于 2018-11-14T09:02:52.717 回答
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 回答
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 回答