深入学习C++关键字:enum 与 enum class

173 阅读1分钟
关键字:
    enum    //枚举类型
    
示例1enum Day {
    Mon = 1,
    Tue, //2
    Wed, //3
    Thu, //4
    Fri, //5
    Sat, //6
    Sun  //7
};
Day day = Mon; //day == 1

示例2enum Color {
    red,         //0
    green = 23,
    bule         //24
} MyColor;


关键字:
    enum class    //C++11新特性
    
示例1enum class Day {
    Mon = 1,
    Tue, //2
    Wed, //3
    Thu, //4
    Fri, //5
    Sat, //6
    Sun  //7
};
Day day = Day::Mon; //day == 1

示例2enum class Day : int {//指定Day的大小为一个int
    Mon = 1,
    Tue, //2
    Wed, //3
    Thu, //4
    Fri, //5
    Sat, //6
    Sun  //7
};
Day day = Day::Mon; //day == 1

传统的enum是不能确定到底多大的(只能看编译器到时候分配多大)
enum class 可以指定大小
除此之外enum class是一个强类型