0

我有两个类,一个是 Driver,另一个是 FilterOut。在Driver中,我有一个名为lights的枚举,我将它作为int正确传递给FilterOut。我无法弄清楚如何将其作为枚举来执行。

我的 Driver 类中的枚举

enum lights{yellow, green, red, blue};

这对我有用。

void FilterOut::LightIn(int light)
  {
       switch(light);
  }

我想做的事。

void FilterOut::LightIn(lights light)
  {
       switch(light);
  }

我尝试了这个和几个变体,但没有运气,有什么想法吗?我还尝试在 FilterOut 中包含一个枚举,它与 Driver 中的枚举相同,并且现在可以使用

4

1 回答 1

4

如果枚举在Driver类中,那么您必须限定其名称:

class FilterOut {
 public:
  void LightIn(Driver::lights light);
};

void FilterOut::LightIn(Driver::lights light)
{
   switch(light);
}

您还必须在调用函数时限定查找范围:

FilterOut f;
f.LightIn(Driver::red);
于 2012-08-14T19:09:18.960 回答