什么是enum?怎么用?

enum

大家好!我是兔飞飞!今天学enum!

C++ 的 enum 就是一堆固定的整数值,帮你取了好听的名字,方便你写代码和看代码时不出错。

为什么需要 enum

假设你在写一个程序表示颜色,如果直接用数字:

int color = 1; // 1 表示红色,2 表示绿色,3 表示蓝色

过几天你再看这段代码,你可能忘了 1、2、3 各自代表什么。而且有人不小心写成 color = 99,还完全不会报错。

这时候,enum 就派上用场了!

用法

enum Color {
    RED,    // 0
    GREEN,  // 1
    BLUE    // 2
};

enum 会帮你定义一组固定值:RED = 0, GREEN = 1, BLUE = 2。然后你在代码里就可以直接用名字:

Color myColor = RED;
if (myColor == GREEN) {
    // do something
}

这样不仅看起来更清楚,还能防止乱用无关的数字。

简单规则

  1. 默认从 0 开始,依次递增
    如果你不喜欢默认值,也可以自己设定:

    enum Color {
        RED = 10,
        GREEN = 20,
        BLUE = 30
    };
    

    这样 RED 是 10,GREEN 是 20。

  2. enum class 更安全(C++11 引入)
    普通 enum 的名字会混在一起,容易和其他东西冲突,比如:

    enum Color { RED, GREEN, BLUE };
    enum Fruit { APPLE, GREEN, BANANA }; // GREEN 会冲突!
    

    为了解决这个问题,C++11 引入了 enum class,每个枚举值都有自己的作用域:

    enum class Color { RED, GREEN, BLUE };
    enum class Fruit { APPLE, GREEN, BANANA };
    
    Color c = Color::RED; // 必须加 Color::,更安全
    Fruit f = Fruit::APPLE;
    

总结

C++ 的 enum 就是把数字换成容易记的名字enum class 是它的升级版,更安全,适合大项目。

例子

比如你写一个交通灯控制程序:

#include <iostream>

enum class TrafficLight {
    RED,
    YELLOW,
    GREEN
};

void displayLight(TrafficLight light) {
    switch (light) {
        case TrafficLight::RED:
            std::cout << "Stop!" << std::endl;
            break;
        case TrafficLight::YELLOW:
            std::cout << "Caution!" << std::endl;
            break;
        case TrafficLight::GREEN:
            std::cout << "Go!" << std::endl;
            break;
    }
}

int main() {
    TrafficLight light = TrafficLight::RED;
    displayLight(light); // 输出:Stop!
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值