c++ - 试图传入另一个类的枚举

标签 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 中的枚举相同,并且现在可以正常工作

最佳答案

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

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

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

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

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

关于c++ - 试图传入另一个类的枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11959090/

相关文章:

c++ - VirtualAlloc/Ex分配什么样的内存

c++ - 如何从用户(这是一个列表)获取输入并将值存储在C++中的数组中?

c++ - 如何在 3D 中对 QML 旋转变换进行动画处理和属性插值

c++ - Template Class : error C4430: missing type specifier - int assumed. 注意:C++不支持default-int

java - java中的枚举值列表

c++ - 将线程指针绑定(bind)到对象时出错

c++ - 继承:值被继承变化

JAVA类空值

Java:Enum子集元素的Hashmap

python - 如何从模板中访问 Django 模型的 Enum?