我有两个类,一个是Driver,另一个是FilterOut。在驱动程序中,我有一个名为light的枚举,可以将它作为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);