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