📜  C++枚举(1)

📅  最后修改于: 2023-12-03 14:39:59.744000             🧑  作者: Mango

C++枚举

枚举(Enum)是C++中的一种数据类型,它用于定义一系列具有相同类型的常数。枚举常量也称为枚举值,它们可以是整数、字符或字符串。

定义枚举

枚举类型的定义方式如下:

enum 枚举名 {
    枚举值1,
    枚举值2,
    ...
    枚举值n
};

其中,枚举名是定义的枚举类型的名称,枚举值可以是任何整数值,默认第一个枚举值为0,其余枚举值依次递增。例如,我们可以定义一个表示星期的枚举类型:

enum Weekday {
    Monday,
    Tuesday,
    Wednesday,
    Thursday,
    Friday,
    Saturday,
    Sunday
};
使用枚举

使用枚举时可以直接通过枚举值来访问枚举常量,例如:

Weekday today = Monday;
if (today == Tuesday) {
    std::cout << "Today is Tuesday." << std::endl;
} else {
    std::cout << "Today is not Tuesday." << std::endl;
}

上述代码中,我们定义了一个Weekday类型的变量today,并将其赋值为Monday,然后通过if语句判断today是否等于Tuesday,如果是则输出"Today is Tuesday.",否则输出"Today is not Tuesday."。

枚举的默认值

枚举常量的默认值从0开始递增,不过我们也可以手动指定枚举常量的值。例如:

enum Fruit {
    Apple = 1,
    Orange,
    Banana
};

上述代码中,我们手动指定了枚举常量的值。其中,Apple的值为1,Orange的值为2(因为Apple的值为1,所以Orange的值为上一个枚举常量的值+1),Banana的值为3。

枚举的作用域

枚举常量与普通变量的作用域相同,即它们的作用域仅限于定义它们的块中。例如:

int main() {
    enum Color {
        Red,
        Blue
    };
    Color color = Red;
    if (color == Red) {
        enum Size {
            Small,
            Medium,
            Large
        };
        Size size = Small;
        std::cout << "Size: " << size << std::endl;
    }
    return 0;
}

上述代码中,我们在main函数中定义了一个表示颜色的枚举类型Color,枚举值为Red和Blue。然后我们定义了一个Color类型的变量color,并将其赋值为Red。接着,在if语句中,我们定义了一个表示大小的枚举类型Size,枚举值为Small、Medium、Large。我们定义了一个Size类型的变量size,并将其赋值为Small。最后输出size的值。

由于Size只在if语句中定义,所以它的作用域仅限于if语句块中。如果在if语句块之外访问Size变量,将会出现"error: 'Size' does not name a type"的错误信息。

总结

枚举是C++中的一种数据类型,它用于定义一系列具有相同类型的常数。枚举常量也称为枚举值,它们可以是整数、字符或字符串。枚举类型的定义方式为:

enum 枚举名 {
    枚举值1,
    枚举值2,
    ...
    枚举值n
};

使用枚举时可以直接通过枚举值来访问枚举常量。枚举常量的默认值从0开始递增,不过我们也可以手动指定枚举常量的值。枚举常量与普通变量的作用域相同,即它们的作用域仅限于定义它们的块中。