C++-C++11新特性(1)-enum

C++98C++11

  1. C++98中{,,}的枚举量作用域是全局的,C++11可以用 class  struct来实现相同枚举量定义。
  2. 枚举量Int C++98无需显示转换,c++11需显示转换。

1.定义

       比如我要定义一个苹果,一个橘子,都有小,中,大。

       1.1C++98

enum apple{big, medium, small, special};

enum orange{big, medium, small};

      在C++98中是会报错的。因为{ big, medium, small }是全局变量,不能定义两遍。

       1.2C++11

     在苹果、橘子都用相同的{ big, medium, small },而且不报错,可以class ,可以struct

enum class  apple{big, medium, small, special};

enum class  orange{big, medium, small};

enum struct  apple{big, medium, small, special};

enum struct  orange{big, medium, small};

2.使用

    1.1C++98 

 enum apple{big, medium, small, special};
 apple a1;
 a1=big;
 int i=a1;//C++98可以

 

       1.2C++11  int 显示转换

apple a1 = apple::big;
orange o1 = orange::big;
int j=a1;//c++11错误
//C++98->C++11时要写成
Int k=int(a1) //C++11要写成 显示类型转换

 

posted @ 2019-11-21 12:13  jasmineTang  阅读(90)  评论(0)    收藏  举报