我有两个类,一个是 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/