在 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/

10-12 20:47