因此,我在一个类中有一个变量“状态”。我想将其声明为整数,以便可以保存一些if语句。

int state;

一种实现方法是声明一个枚举状态{One = 0,Two = 1,Three = 3},然后在switch语句中将变为:
switch (state)
{
case One:
    dosomething();
    break;
case Two:
    dosomething();
    break;
case Three:
    dosomething();
    break;
}

那么,像这样使用枚举是否是一种好习惯?
有一个更好的方法吗?

谢谢!

最佳答案

是的,这是一个很好的方法。通常,您使用enums可以使生活更轻松,许多不同的数字并不能真正告诉其他编码人员任何信息都没有很大帮助。

因此,这是使用它的一种非常好的方法,它使您的代码具有可读性和可理解性。

正如@James McNellis所指出的那样,将枚举命名为“1,2,3,4”是一个坏主意,因为它没有表达其实际作用。

但是我怀疑那只是您的一个例子。

考虑一下这个:

switch (operationState)
{
    case Waiting:
        dosomething();
        break;
    case Running:
        dosomething();
        break;
    case Ended:
        dosomething();
        break;
}

在这种情况下,“操作”可以是:Waiting,Running或Ended,这使它易于阅读和理解。现在考虑没有枚举的方式:
switch (iState)
{
    case 997:
        dosomething();
        break;
    case 998:
        dosomething();
        break;
    case 999:
        dosomething();
        break;
}

997告诉你什么?绝对没有!使用易读易懂的代码使每个人的生活更轻松。

关于c++ - 将enum用作int是一种好习惯吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4963031/

10-11 16:57