c ++返回枚举的函数?

时间:2013-04-20 09:36:07

标签: c++ function enums

所以我有一个名为paddleNS的名为paddleNS的名称空间,在paddleNS中我有一个称为颜色的枚举

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 个答案:

答案 0 :(得分:14)

只需按值返回枚举:

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

  paddleNS::COLOUR currentColour() const { return colour; }
};

答案 1 :(得分:1)

class Paddle : public Entity
{
  // ----

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

答案 2 :(得分:1)

保留一个字符串数组,其中此字符串数组中的indix与您正在使用的枚举值匹配。

所以如果你有:

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}

然后当你有一个函数返回这种类型的枚举时,你可以将它放入你的数组并以字符串格式获得正确的颜色。

答案 3 :(得分:0)

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

enum COLOUR function();

以及定义函数时:

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

在main.cpp我enter code here中,您可以管理它