精华内容
下载资源
问答
  • 主要介绍了C++枚举类型enum与enum class的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • C++枚举类型enum与enum class

    千次阅读 多人点赞 2020-08-18 22:31:23
    枚举类型enum使用三.枚举类型enum class的使用 一.关于枚举类型 1. 什么是枚举类型? 答:如果一个变量只有几种可能的值,那么就可以定义为枚举类型,比如:性别只有男和女,那么就可以将性别定义为一种枚举类型...

    在这里插入图片描述

    一.关于枚举类型

    1. 什么是枚举类型?
    答:如果一个变量只有几种可能的值,那么就可以定义为枚举类型,比如:性别只有男和女,那么就可以将性别定义为一种枚举类型,其中男和女就是性别所包含的变量。所谓”枚举”是指将变量的值一一列举出来,变量的值只能在列举出来的值的范围内。在C++中,枚举类型分为不限定作用域(enum)和限定作用域(enum class)。

    2. enum与enum class的区别? (为什么需要限定作用域?)
    答:枚举作用域是指枚举类型成员名字的作用域,起自其声明之处,终止枚举定义结束之处。enum与class enum区别在于是否限定其作用域。C语言规定,枚举类型(enum)的成员的可见范围被提升至该枚举类型所在的作用域内。这被认为有可能污染了外部的作用域,为此,C++11引入了枚举类(enum class)解决此问题。

    举个例子:
    通常情况下,我们定义一个枚举类型:

    enum Sex
    {
    	Girl,				
    	Boy		
    };
    

    这时,你不可以再使用一个枚举去定义GirlBoy了,如:

    // 错误,编译器提示 Girl,Boy重定义
    enum Student
    {
    	Girl,				
    	Boy	
    };
    

    编译错误的原因在于Sex与Student都处在同一作用域下,成员变量重定义。

    这便体现C++11引入枚举类(enum class)的重要性,enum class能够有效对枚举作用域进行限定,避免了枚举成员的重定义。

    enum class Sex
    {
    	Girl,				
    	Boy		
    };
    
    enum class Student
    {
    	Girl,				
    	Boy	
    };
    
    int main(int argc, char *argv[])
    {
      Sex a = Sex::Gril; 
      Student b = Student::Gril;
      //两者处于不同作用域下,不会重定义
    }
    

    二.枚举类型enum的使用

    定义:

    enum /*枚举类型*/ 
    {
    	/*枚举成员*/,				
    	/*枚举成员*/,	
    	/*枚举成员*/				
    };
    如:
    enum Sex
    {
    	Girl,				
    	Boy		
    };
    

    声明:

    Sex a=Girl;
    

    注意:

    1. 枚举中每个成员(标识符)结束符是“,”而不是”;” 最后一个成员可省略”,”
    2. 初始化时可以赋负数,以后的标识符仍依次加1。
    3. 枚举变量只能取枚举说明结构中的某个标识符常量。
    4. 在外部可以对枚举变量进行赋值,但需要进行类型转换。
    5. 枚举常数可以隐式转换为int,但是int不可以隐式转换为枚举值。
    6. 为枚举中的每个名称分配一个整数值,该值与其在枚举中的顺序相对应。默认情况下,第一个值分配0,下一个值分配1,依次类推,但也可以显示设置枚举名称的值。
    7. 枚举值可以用来作判断比较。

    三.枚举类型enum class的使用

    定义:

    enum class/*枚举类型*/ 
    {
    	/*枚举成员*/,				
    	/*枚举成员*/,	
    	/*枚举成员*/				
    };
    如:
    enum class Sex
    {
    	Girl,				
    	Boy		
    };
    

    声明:

    Sex a=Sex::Gril;
    

    枚举定义将被限制在枚举作用域内,并且不能隐式转换为整数类型,但是可以显式转化为整数类型,如下:

    enum class Sex
    {
    	Girl,				
    	Boy	
    };
    int main(int argc, char *argv[])
    {
        Sex a=Sex::Gril;
        int d1 =a; // 错误,无法从“Girl”隐式转换为“int”。
    	int d2 = int(a); // 正确,显示将enum class转换为整数
    	return 0;
    }
    
    展开全文
  • 关于C++枚举类型enum

    2019-09-26 08:23:39
    关于C++枚举类型enum 一、何为枚举类型? 枚举类型(enumeration)是C++中的一种派生数据类型,它是由用户定义的若干枚举常量的集合。 声明形式: enum 枚举名 {变量列表}; 例如: enum Weekday{SUN,MON.TUE,WED,THU...

    关于C++枚举类型enum

    一、何为枚举类型?
    枚举类型(enumeration)是C++中的一种派生数据类型,它是由用户定义的若干枚举常量的集合。

    声明形式:

    enum 枚举名 {变量列表}; 

    例如:

     enum Weekday{SUN,MON.TUE,WED,THU,FRI,SAT};

    定义枚举数据类型变量,例如:

    Weekday myweekday;

    (注意数据类型是Weekday而不是enum Weekday)

    二、枚举类型应用说明

    1,枚举元素具有默认数值,它们依次为:0,1,2,3,...。例如上例中SUN的值为0,MON的值为1,TUE为2,...,SAT为6。

    2, 也可以在声明中另行定义枚举元素的值,如:

    enum Weekday{SUN=7,MON=1,TUE,WED,THU,FRI,SAT};

    定义SUN为7,MON为1,以后顺序加1,TUE为2,WED为3,...,SAT为6。
    3, 对枚举元素按常量处理,但不能对它们直接赋予常量值。例如,下面的的语句是错误的:

     SUN=7;//SUN是枚举元素,不能直接赋予常量值

    如需要将整数附值给枚举变量,应进行强制类型转换,例如:
    SUN=(Weekday)7;//在值前面加(类型)是常用的强制类型转换方法
    4,枚举值可以进行关系运算:
    1)可以使用关系运算符来比较两个枚举变量。例如,以下 if 语句判断存储在 myweekday1中的值是否小于存储在 myweekday中的值:
    if ( myweekday1 < myweekday2)
    如果 myweekday1存储的值小于 myweekday2的值,则该语句为 true。否则该语句将为 false。
    2)可以使用整数值而不是符号名称来测试枚举变量。例如,以下两个 if 语句是等效的:

    if  myweekday== MON)
    if ( myweekday == 1)

    5, 如果为枚举变量赋值,则它们必须是整数。以下赋值语句将产生错误:
    enum Weekday{SUN=1.1,MON=1.2,TUE=1.3,WED=1.4,THU,FRI,SAT }; //错误

    6, 枚举数据类型的目的之一是符号名称有助于使程序自我解释。但是,这些名称不是字符串,而是数值,所以在输出时,输出的是数字,而不是字符串。例如:

    Weekday myweekday = SUN;
    cout << myweekday;//输出的是0这个数值

    输入结果如下:
    输出结果

    7, 枚举值可以赋给整型变量,例如:

    int a;
    a = SUN;//枚举值可以赋给整形变量
    cout << a;

    8, 因为枚举数据类型的符号名称与整数值相关联,所以它们可以在 switch 语句中使用,如下面的程序所示:
    题目:口袋中有红,黄,蓝,白,黑5种颜色球若干个。每次从口袋中取出3个不同颜色的球,问有多少种取法?

     #include<iostream>
    using namespace std;
    void transfer(int i)//将相应的数值组合通过switch语句转换为字符串
    {
        switch (i)
        {
        case 0:cout << "red "; break;
        case 1:cout << "yello "; break;
        case 2:cout << "blue "; break;
        case 3:cout << "white "; break;
        case 4:cout << "black "; break;
        }
    }
    enum ball {red,yello,blue,white,black};//定义球的枚举类型
    int main()
    {
        int i, j, k,count=0;
        for (int i = red; i <= black; i++)
        {
            for (int j = i+1; j <= black; j++)
            {   
                    for (int k =j+1; k <= black; k++)
                    {
                        
                            transfer(i);
                            transfer(j);
                            transfer(k);
                            cout <<endl;
                            count++;
                        
                    }
            
            }
        }
        cout << count;
        return 0;
    }
    

    运行结果:
    运行结果
    三,总结
    当一个变量有几种可能的取值时,可以将它定义为枚举类型。枚举类型有利于程序的可读性。对枚举元素按常量处理,枚举元素具有默认数值,但不能对它们直接赋予常量值。因为枚举变量是整数,所以也可以使用关系运算符来比较两个枚举变量,并且通常配合switch语句来输出相应的值。

    转载于:https://www.cnblogs.com/-believe-me/p/11518382.html

    展开全文
  • 深入理解C++枚举类型enum <span class="link_postdate">2013-01-07 16:02 <span class="link_vie

    为啥需要枚举类型

    编程语言中的所有特性都是为了满足某种需求,达到某个目的还出现.不会莫名其妙的出现在那.

    枚举可以用来保存一组属性的值.enum的全称是enumeration意思是列举

    看着这句话可能觉得太书面化了,不够通俗易懂.那举些通俗的例子说说.日常生活中我们特喜欢分类,比如读书时分啥数,理,化.当官的级别有啥省长,市长,县长.军队有军长,师长,团长.这样一组组的属性值就最适合用枚举类型来表示.当用一个软件时,有些页面会有很多单选按钮(radio button),这也特别适合用枚举来表示你举了哪一个.

     

    光这样说你可能还不能体现枚举的好处.如果没枚举,表示一些组属性的值你只能用一组数字,或者一组字符串.

    数字从字面上看不出任意意义,可读性非常差,所以很少用.那就假如要你通过比较字符串来做很多种类判断,比如 if(HisTitle == “stadholder”)   else if(HistTile == “mayor”) .如果让你敲个几十次你就知道是件多麻烦痛苦的事了,很多单词如果敲错一个意思就完全变了,这样出现bug了也不容易找到.老是复制粘贴也较麻烦.所以字符串是编辑麻烦,容易出错.如果要使用枚举就极大的方便我们敲代码,集成开发工具中的智能感应会给你提示,敲个点号就带出来了.而且枚举会做类型检查,不会像字符串那样只能靠你自己去对比.

     

    枚举类型的内存分配问题

     

    上面我们讲了如果没有枚举,一般会想到用数字或字符串表示某个类别.这样使用肯定不方便.也许你可能会想到用宏来表示.比如#define 市长 “mayor” 或者#define 市长 2

    这自然是一个方法,但一来嘛在C++中是不太推荐用宏的,尽量少用.因为C++是强类型的语言,希望通过类型检查来降低程序中的很多错误,而宏只是在编译期前做简单替换,绕过了类型检查,失去了强类型系统的优势支撑. 二来嘛一组属性值都是相关联的信息,必须放到一起,放到一组.

     

    关于常量的误解

    枚举类型成员是常量

    这句话怎么理解呢.也就是说enum  MyEnum{ one = 1 , two , three} ;

    与 const int one = 1;  const int two = 2; const int three = 3; 差不多是一样的.

     

    说到常量其实有个非常误导人的地方因为用宏#define 可以定义的我们说是常量,这里只涉及到简单的替换自然不可能存在内存分配问题.但是用const定义的也叫常量,而const定义常量貌似跟定义一般的变量只多个const关键字. 你可能会想当然认为常量都只是简单替换,所以不存在内存分配.那按这个逻辑,岂不是const定义的常量,枚举类型都没有内存分配?

    实际上大部分时候确实是这样的.但并非总是如此,有些情况会需要分配内存的.

     

    1.不需要分配内存的情况

    如果定义常量const int one = 1;然后在其他地方只是把one作为右值赋值给其他变量那就不存在内存分配.但这里的常量跟#define定义的常量不同,宏定义的常量是编译前简单替换掉,而不需要做类型检查.而const定义的常量在编译时会帮类型检查,编译完之后再做替换.所以编译完之后就看不到const的信息了,转换成对应的值.const定义的信息只是保存在符号表中.

    那同样,如果只是enum MyEnum{ one = 1 , two , three} ;这样定义一个枚举类型,然后也是简单的作右值赋值给其他变量.比如int num = MyEnum::one;那也只是保存信息在符号表中,编译后被替换掉了.

    有人可能说如果用sizeof MyEnum测下会发现会是4(这是VS里面,不同的编译器可能不一样)于是认为不管是枚举里面有多少个元素内存分配都是4.实际上不是这意思,应该是定义一个MyEnum类型的枚举变量时会分配内存.这跟定义了一个类一样,你用sizeof去测一个为也会看到大小,但我们知道只有当类实例化之后才实际分配内存的.

     

    2.需要分配内存的情况

    1.)const int one;是类的成员变量 2. )extern const int one = 123;    3.)const int one = 1;    int* pConst = &one;

    上面三种情况会需要分配内存.

    而枚举类型,如果不是简单的去给其他变量赋值,而是去定义一个枚举类型变量.

    比如MyEnum grade = MyEnum::one; //此时会分配4字节内存空间.(不过据说编译器会做优化,如果枚举类型所有值用两个字节表示就足够了,那实际分配的会就只会是两字节了.不一定就是默认的int类型的长度)

     

     

    枚举类型具体用法

    一般的用法是在全局域内定义一个枚举类型.比如

    enum  MyEnum { one, two, three }

    如果不显式指定,就会把第一个值默认赋值为0,然后递增1依次赋值.如果显式指定了某个值,则它下一个是它加1.

    所以上面的例子中默认one = 0; two = 1; three= 2;

    如果显式指定enum MyEnum { one, two = 3, three }

    则one = 0; two = 3; three = 4;

     

    定义一个枚举类型就是MyEnum grade = MyEnum::one;

     

    类中使用枚举这是不太常用的用法.

    在类中声明一个枚举后,定义枚举类型就可以省掉那个域作用前缀.比如MyEnum my = one; 在相同的作用域内也不能出现某个变量的名字和枚举中的元素名字相同,也就是不能出现其他变量名字是on,two, three

    另外枚举还有一种少见的用法是

    enum { one ,two ,three};  就是不指定一个名字,这样我们自然也没法去定义一些枚举类型了.此时就相当于const int one = 0;这样定义三个常量一样.

    然后用的话就是int no = one;

    展开全文
  • 在实际编程中,有些数据的取值往往是有限的,只能是非常少量的整数,并且最好为每个值都取一个名字,以方便在后续代码中使用,比如一个星期只有七天,一年只有十二个月,一个班每周有六门课程等。以每周七天为例,...

    在实际编程中,有些数据的取值往往是有限的,只能是非常少量的整数,并且最好为每个值都取一个名字,以方便在后续代码中使用,比如一个星期只有七天,一年只有十二个月,一个班每周有六门课程等。

    以每周七天为例,我们可以使用#define命令来给每天指定一个名字:

    #include

    #define Mon 1

    #define Tues 2

    #define Wed 3

    #define Thurs 4

    #define Fri 5

    #define Sat 6

    #define Sun 7

    int main(){

    int day;

    scanf("%d", &day);

    switch(day){

    case Mon: puts("Monday"); break;

    case Tues: puts("Tuesday"); break;

    case Wed: puts("Wednesday"); break;

    case Thurs: puts("Thursday"); break;

    case Fri: puts("Friday"); break;

    case Sat: puts("Saturday"); break;

    case Sun: puts("Sunday"); break;

    default: puts("Error!");

    }

    return 0;

    }

    运行结果:

    5↙

    Friday

    #define命令虽然能解决问题,但也带来了不小的副作用,导致宏名过多,代码松散,看起来总有点不舒服。C语言提供了一种枚举(Enum)类型,能够列出所有可能的取值,并给它们取一个名字。

    枚举类型的定义形式为:

    enum typeName{ valueName1, valueName2, valueName3, ...... };

    enum是一个新的关键字,专门用来定义枚举类型,这也是它在C语言中的唯一用途;typeName是枚举类型的名字;valueName1, valueName2, valueName3, ......是每个值对应的名字的列表。注意最后的;不能少。

    例如,列出一个星期有几天:

    enum week{ Mon, Tues, Wed, Thurs, Fri, Sat, Sun };

    可以看到,我们仅仅给出了名字,却没有给出名字对应的值,这是因为枚举值默认从 0 开始,往后逐个加 1(递增);也就是说,week 中的 Mon、Tues ...... Sun 对应的值分别为 0、1 ...... 6。

    我们也可以给每个名字都指定一个值:

    enum week{ Mon = 1, Tues = 2, Wed = 3, Thurs = 4, Fri = 5, Sat = 6, Sun = 7 };

    更为简单的方法是只给第一个名字指定值:

    enum week{ Mon = 1, Tues, Wed, Thurs, Fri, Sat, Sun };

    这样枚举值就从 1 开始递增,跟上面的写法是等效的。

    枚举是一种类型,通过它可以定义枚举变量:

    enum week a, b, c;

    也可以在定义枚举类型的同时定义变量:

    enum week{ Mon = 1, Tues, Wed, Thurs, Fri, Sat, Sun } a, b, c;

    有了枚举变量,就可以把列表中的值赋给它:

    enum week{ Mon = 1, Tues, Wed, Thurs, Fri, Sat, Sun };

    enum week a = Mon, b = Wed, c = Sat;

    或者:

    enum week{ Mon = 1, Tues, Wed, Thurs, Fri, Sat, Sun } a = Mon, b = Wed, c = Sat;

    【示例】判断用户输入的是星期几。

    #include

    int main(){

    enum week{ Mon = 1, Tues, Wed, Thurs, Fri, Sat, Sun } day;

    scanf("%d", &day);

    switch(day){

    case Mon: puts("Monday"); break;

    case Tues: puts("Tuesday"); break;

    case Wed: puts("Wednesday"); break;

    case Thurs: puts("Thursday"); break;

    case Fri: puts("Friday"); break;

    case Sat: puts("Saturday"); break;

    case Sun: puts("Sunday"); break;

    default: puts("Error!");

    }

    return 0;

    }

    运行结果:

    4↙

    Thursday

    需要注意的两点是:

    1) 枚举列表中的 Mon、Tues、Wed 这些标识符的作用范围是全局的(严格来说是 main() 函数内部),不能再定义与它们名字相同的变量。

    2) Mon、Tues、Wed 等都是常量,不能对它们赋值,只能将它们的值赋给其他的变量。

    枚举和宏其实非常类似:宏在预处理阶段将名字替换成对应的值,枚举在编译阶段将名字替换成对应的值。我们可以将枚举理解为编译阶段的宏。

    对于上面的代码,在编译的某个时刻会变成类似下面的样子:

    #include

    int main(){

    enum week{ Mon = 1, Tues, Wed, Thurs, Fri, Sat, Sun } day;

    scanf("%d", &day);

    switch(day){

    case 1: puts("Monday"); break;

    case 2: puts("Tuesday"); break;

    case 3: puts("Wednesday"); break;

    case 4: puts("Thursday"); break;

    case 5: puts("Friday"); break;

    case 6: puts("Saturday"); break;

    case 7: puts("Sunday"); break;

    default: puts("Error!");

    }

    return 0;

    }

    Mon、Tues、Wed 这些名字都被替换成了对应的数字。这意味着,Mon、Tues、Wed 等都不是变量,它们不占用数据区(常量区、全局数据区、栈区和堆区)的内存,而是直接被编译到命令里面,放到代码区,所以不能用&取得它们的地址。这就是枚举的本质。

    关于程序在内存中的分区以及各个分区的作用,我们将在《C语言内存》专题中的《Linux下C语言程序的内存布局(内存模型)》一节中详细讲解。

    我们在《C语言switch语句》一节中讲过,case 关键字后面必须是一个整数,或者是结果为整数的表达式,但不能包含任何变量,正是由于 Mon、Tues、Wed 这些名字最终会被替换成一个整数,所以它们才能放在 case 后面。

    枚举类型变量需要存放的是一个整数,我猜测它的长度和 int 应该相同,下面来验证一下:

    #include

    int main(){

    enum week{ Mon = 1, Tues, Wed, Thurs, Fri, Sat, Sun } day = Mon;

    printf("%d, %d, %d, %d, %d\n", sizeof(enum week), sizeof(day), sizeof(Mon), sizeof(Wed), sizeof(int) );

    return 0;

    }

    运行结果:

    4, 4, 4, 4, 4

    枚举类型enum详解——C语言

    enum enum是C语言中的一个关键字,enum叫枚举数据类型,枚举数据类型描述的是一组整型值的集合(这句话其实不太妥当),枚举型是预处理指令#define的替代,枚举和宏其实非常类似,宏在预处理阶 ...

    &lbrack;编程&rsqb; C语言枚举类型(Enum)

    C语言枚举类型(Enum):定义形式为:enum typeName{ valueName1, valueName2, valueName3, ...... };enum 类型名{名字1,名字2} 枚举 ...

    【转】java枚举类型enum的使用

    原文网址:http://blog.csdn.net/wgw335363240/article/details/6359614 java 枚举类型enum 的使用 最近跟同事讨论问题的时候,突然同事提到 ...

    C&num; 中的枚举类型 enum (属于值类型)

    原文 C# 中的枚举类型 enum (属于值类型) C# 支持两种特殊的值类型:枚举和结构. 声明枚举:声明时要声明所有可能的值. using System; using System.Collect ...

    深入理解Java枚举类型&lpar;enum&rpar;

    https://blog.csdn.net/javazejian/article/details/71333103 深入理解Java类型信息(Class对象)与反射机制 深入理解Java枚举类型(en ...

    人生苦短之Python枚举类型enum

    枚举类型enum是比较重要的一个数据类型,它是一种数据类型而不是数据结构,我们通常将一组常用的常数声明成枚举类型方便后续的使用.当一个变量有几种可能的取值的时候,我们将它定义为枚举类型.在Python ...

    全面解读Java中的枚举类型enum的使用

    这篇文章主要介绍了Java中的枚举类型enum的使用,开始之前先讲解了枚举的用处,然后还举了枚举在操作数据库时的实例,需要的朋友可以参考下 关于枚举 大多数地方写的枚举都是给一个枚举然后例子就开始sw ...

    Java基础之枚举类型Enum的使用

    Java基础之枚举类型Enum的使用 定义 public enum AccruedCleanEnum { SPREAD("1","发票"),OTHER(&quo ...

    《挑战30天C&plus;&plus;入门极限》新手入门:C&sol;C&plus;&plus;中枚举类型&lpar;enum&rpar;

    新手入门:C/C++中枚举类型(enum) 如果一个变量你需要几种可能存在的值,那么就可以被定义成为枚举类型.之所以叫枚举就是说将变量或者叫对象可能存在的情况也可以说是可能的值一一例举出来. ...

    随机推荐

    Control Flow 如何处理 Error

    在Package的执行过程中,如果在Data Flow中出现Error,那么Data Flow component能够将错误行输出,只需要在组件的ErrorOutput中进行简单地配置,参考

    SpringMVC 配置log4j

    log4j.properties相关 http://www.cnblogs.com/ITEagle/archive/2010/04/23/1718365.html http://www.cnblogs ...

    html部分---表单、iframe、frameset及其他字符的用法(以及name、id、value的作用与区别);

    /action的作用是提交到..,methed是提交方法,用po ...

    Windows添加在此处打开命令CMD

    打开rededit在:HKEY_CLASS_ROOT > * > shell >下面新建一个项CMD 在CMD中新建两个字符串 一个是默认,值为 @shell32.dll,- 另外一 ...

    Android笔记——Bitmap自动取色(纯搬运)

    2015/6/12更新:发现一个更好的,带demo https://github.com/MichaelEvans/ColorArt 说明: 这个是一个老外写的自动自动从bitmap中取主色与第二主色 ...

    jQuery的extend详解

    JQuery的extend扩展方法:      Jquery的扩展方法extend是我们在写插件的过程中常用的方法,该方法有一些重载原型,在此,我们一起去了解了解.      一.Jquery的扩展方 ...

    jdk7u79linuxx64&period;tar&period;gz下载

    jdk1.7下载: 百度云盘链接:https://pan.baidu.com/s/1cQFLnS 密码:wdek

    &lbrack;转&rsqb;Cloudera Manager和CDH5&period;8离线安装

    https://blog.csdn.net/zzq900503/article/details/52982828 https://www.cnblogs.com/felixzh/p/9082344.h ...

    软件工程&lpar;FZU2015&rpar; 学生博客列表&lpar;最终版&rpar;

    FZU:福州大学软件工程 张老师的博客:http://www.cnblogs.com/easteast/ 经过前两周选课,最后正式选上课程的所有学生博客如下: 序号 学号后3位 博客 1 629 li ...

    IntelliJ Idea 使用笔记

    1. IntelliJ Idea解决Could not autowire. No beans of 'xxxx' type found的错误提示. 原因可能有两个,第一个是IntellijIDEA本身 ...

    展开全文
  • C/C++枚举类型enum使用

    万次阅读 多人点赞 2016-09-27 12:54:24
    本文介绍了C/C++关于枚举enum使用,语法,注意点等进行了总结
  • C++枚举(enum)

    2021-01-15 11:51:17
    C++enum工具提供了另外一种创建符号常量的方式,这种方法可以替代const,它还允许定义新的类型,但必须按照严格得限制进行。使用enum的句法与使用结构体类似 先摆上一个例子 enum spectrum{red, orange, yel1ow, ...
  • C++枚举类型enum

    2018-06-26 15:32:34
    枚举类型的整形赋值的方式:首元素默认为0,后一个元素不赋值的话,默认比前一个元素大1
  • 1.enum C++enum提供了另一种创建符号常量的方法,这种方式可以替代const。
  • C++枚举类型enum表示枚举,通常用于定义个新类型的字符常量,比如enum {January,February,March}。枚举类型的作用域一般是整个文件或者类内。当枚举类型定义在文件开头时,则作用域是从定义位置开始往后(不包括函数...
  • 关于c++枚举类型enum知识点

    千次阅读 2018-07-02 23:16:47
    enum枚举类型,但说它是一种类型,它和内置类型及类类型都有些许不同。它的用法真的很奇怪,我们一起来看一看: enum week{monday,tuesday,wednesday,thursday,friday,saturday,sunday}; week date=monday; 乍...
  • enum :枚举类型enum 枚举类型名 {变量值列表} 如enum Weekday {SUN,MON,TUE,WED,THU,FRI,SAT};
  • C++enum枚举类型用法 课题目标 了解enum枚举类型的基本形式,掌握enum枚举类型使用方法。 课题引入 从一个对一周(包含周一到周日)的每天进行声明与赋值,来引出enum使用的便捷性,引出...
  • 这样做当然可以,但是使用枚举,可以提供编译时类型检查,在开发大型程序时,库文件可能相互分离,这对开发客户端的程序员来说,是很方便的,因为他不知道服务端的代码,也不知道提供了哪些类型可以选择,这时枚举的...
  • 声明枚举类型enum开头。 枚举类型(enumeration)是C++中的一种派生数据类型,它是由用户定义的若干枚举常量的集合: (1)、枚举中每个成员(标识符)结束符是“,”,不是”;”,最后一个成员可省略”,”; (2)、初始化...
  • C++枚举类型(enum)

    2011-01-08 22:05:58
    C++枚举类型(enum)
  • c/c++ 枚举enum用法总结

    2020-06-11 09:53:54
    传入switch的参数可以有两种类型:int和name case1:switch传入参数为int类型 notice:就不用定义name类型的变量了 void test1() { //传入switch的参数可以有两种类型:int和name //case1:switch传入参数为int类型...
  • C语言枚举类型enum-总结
  • 如果不用enum,用define一般情况也可以实现,那为什么还要enum呢? 举一个简单的例子:比如有一个变量是代表星期几,在程序当中要根据这个变量进行某种操作,如果用define的话代码如下: #include<bits/stdc++.h&...
  • C++ enum枚举类型

    2019-09-30 00:52:14
    要想使用C++解决这个问题,那么我们就需要学习enum枚举类型。 二、枚举类型的定义及格式 枚举类型的定义:枚举类型(enumeration)是 C++ 中的一种派生数据类型,它是由用户定义的若干枚举常量的集合。 定义格式...
  • C++枚举类型 在C++中,如果一个变量只有几种可能的值,可以定义为枚举类型。枚举是指将变量的值一一列举出来,变量的值只能在列举出来的值的范围内。 C++声明枚举类型用enum开头。 enum weekday_enum { Sunday,...
  • C++ 枚举 ENUM

    2018-06-02 22:16:39
    C/C++语言可以使用#define和const创建符号常量,而使用enum工具不仅能够创建符号常量,还能定义新的数据类型,但是必须按照一定的规则进行,下面我们一起看下enum使用方法。 一、枚举量的声明和定义 num enum...
  • C++遍历输出enum枚举类型

    千次阅读 2019-10-11 18:39:07
    enum DAY { MON, TUE, ...如果使用如下方式来遍历,则编译器会报类型转换失败错误,因为enum类型没有++运算符,也不支持+运算。 for(DAY i = MON; i <= SUN; i++) { cout << i &...
  • C++枚举类型

    2021-01-08 11:06:06
    C++枚举类型 在C++中,如果一个变量只有几种可能的值,可以定义为枚举类型。枚举是指将变量的值一一列举出来,变量的值只能在列举出来的值的范围内。 C++声明枚举类型用enum开头。 enum weekday_enum { Sunday,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 27,474
精华内容 10,989
关键字:

c++枚举类型enum用法

c++ 订阅