在 C 中,我可以使用 if/else 语句测试枚举的值。例如:
enum Sport {Soccer, Basket};
Sport theSport = Basket;
if(theSport == Soccer)
{
// Do something knowing that it is Soccer
}
else if(theSport == Basket)
{
// Do something knowing that it is Basket
}
有没有其他方法可以用 C++ 完成这项工作?
最佳答案
是的,您可以使用虚函数作为接口(interface)的一部分,而不是使用 if-else 语句。
我给你举个例子:
class Sport
{
public:
virtual void ParseSport() = 0;
};
class Soccer : public Sport
{
public:
void ParseSport();
}
class Basket : public Sport
{
public:
void ParseSport();
}
在以这种方式使用您的对象之后:
int main ()
{
Sport *sport_ptr = new Basket();
// This will invoke the Basket method (based on the object type..)
sport_ptr->ParseSport();
}
这要归功于 C++ 添加了面向对象的特性。
关于c++ - 在 C++ 中测试枚举值的另一种方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10834633/