试图传入另一个类的枚举

时间:2012-08-14 19:06:30

标签: c++ class enums

我有两个类,一个是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中的枚举相同,现在已经有效了

1 个答案:

答案 0 :(得分:4)

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

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

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

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

FilterOut f;
f.LightIn(Driver::red);