C++ c++;函数返回枚举?

C++ c++;函数返回枚举?,c++,function,enums,C++,Function,Enums,所以我有一个名为pailens的名称空间,用于名为pailer的类,在pailens中我有一个名为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; publi

所以我有一个名为pailens的名称空间,用于名为pailer的类,在pailens中我有一个名为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; }
};

现在,我想知道的是,我该如何创建一个函数来返回当前的颜色?是否有一种更简单的方法以文本形式而不是值形式返回它,或者我是否比使用开关来确定颜色更好?

只需按值返回枚举:

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

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

保留一个字符串数组,其中该字符串数组中的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}

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

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

enum COLOUR function();
定义函数时:

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

在main.cpp中,我
在此处输入代码
您是否可以管理它

是否有更简单的方法以文本形式返回它,或者我是否可以使用开关来确定颜色这是我遗漏的一点,这是我的错。@Andy你想要枚举的字符串表示吗?@Andy我想这可能是问题所在。开关,或
std::map
。试着更准确地提问。juanchopanza回答了您实际提出的问题。@Andy您想要字符串形式的事实应该是您问题中最突出的部分@安迪:没有简单的方法,切换/映射是最简单的。或者离开枚举并创建/重用一些模板
枚举
类,该类具有
to_string()
方法
enum Paddle::COLOUR Paddle::function(){
        // return some variable that hold enum of COLOUR
}