C ++函数接收枚举作为其参数之一

时间:2011-06-07 05:19:41

标签: c++ enums

我正在尝试使函数接收枚举作为其参数之一。我把枚举作为一个全局但由于某种原因我的其他文件无法改变枚举。所以我想知道如何将枚举设置为函数的参数,如

function(enum AnEnum eee);

还是有更好的方法来解决上述问题?

好的快速改写我的问题:我基本上有很多文件,我希望他们所有人都可以访问我的枚举,并能够更改该枚举的状态以及应该能够访问它的大多数文件在课堂上。我试图解决这个问题的方法是将枚举传递给需要访问它的函数,我无法弄清楚如何使函数接收枚举作为其参数之一。

2 个答案:

答案 0 :(得分:11)

如果要传递值为其中一个枚举值的变量,则会执行以下操作:

enum Ex{
  VAL_1 = 0,
  VAL_2,
  VAL_3
};

void foo(Ex e){
  switch(e){
  case VAL_1: ... break;
  case VAL_2: ... break;
  case VAL_3: ... break;
  }
}

int main(){
  foo(VAL_2);
}

如果那不是您的意思,请澄清。

答案 1 :(得分:0)

(1) my other files couldn't change the enum

您无法更改enum值,因为它们是constants。我认为您打算更改enum变量值。

(2) how do you set an enum as an argument for a function ?

如果您想更改 enum变量的值,请通过参考

传递它
void function (AnEnum &eee)
{
   eee = NEW_VALUE;
}