可以声明枚举类型的函数吗?

时间:2009-07-18 16:48:46

标签: c++

只是想知道是否可以在C ++中声明枚举类型的函数

例如:

class myclass{
   //....
   enum myenum{ a, b, c, d};
   myenum function();
   //....
   };

   myenum function()
   {
      //....
   }

3 个答案:

答案 0 :(得分:6)

是的,返回枚举类型是很常见的。

因为函数想要使用它,你会希望把你的枚举放在类之外。或者使用类名来定义函数的枚举返回类型(枚举必须位于类定义的公共部分中)。

class myclass
{
public:
  enum myenum{ a, b, c, d};

  //....

  myenum function();

  //....
};

myClass::myenum function()
{
  //....
}

答案 1 :(得分:2)

只需确保枚举位于班级的public部分:

class myclass
{
    public:
    enum myenum{POSITIVE, ZERO, NEGATIVE};
    myenum function(int n)
    {
        if (n > 0) return POSITIVE;
        else if (n == 0) return ZERO;
        else return NEGATIVE;
    }
};

bool test(int n)
{
    myclass C;
    if (C.function(n) == myclass::POSITIVE)
        return true;
    else
        return n == -5;
}

答案 2 :(得分:1)

是的,绝对是。