枚举

定义:在默认情况下讲整数值赋给枚举量,第一个枚举量的值为0,第二个枚举量的值为1,依次+1


一、定义一个枚举,枚举类型,枚举量

*与C#相比个人认为C++的enum不好一点是不能通过枚举名点其中的枚举量!!!!感觉证人都不好了 T-T

enum spectrum{red,orange,yellow,green,blue,violet,indigo,ultraviolet};//他们对应的数值0~7,red,orange...这些常量叫做枚举量

1、可以用枚举名称来声明这种类型的变量:

spectrum band;

2、可以讲枚举量赋给这些枚举类型的变量:

band=blue;  //正确

band=; //错误,超出枚举范围

3、枚举只有复制运算,没有为枚举定义算数运算:

band=orange;        //正确;
++band; //错误
band=orange+red;   //错误

4、枚举量是整形的,可被提升为int类型,但int类型不能自动转化为枚举:

int color=blue;  //正 确,枚举量是整型
band=;       //不正确,int类型不能转换为枚举类型
color=+red;    //正 确,color的枚举量为int型,red+3也转化为int型

5、如果int值在枚举范围内(有效的),则可以通过强制类型转换,将他赋值给枚举变量:

band=spectrum(); //将int型3转化为枚举类型

6、如果int型数值不在枚举范围内,进行强制类型转换,结果是不确定的:

band=spectrum(40003); // undefined

二、枚举量的值,取值范围

1、显示的赋值

enum bits{one=,two=,four=,eight=};

2、非显示赋值

enum bigstep{first,second=,third};  //first为0,third为101
enum{zero,null=,one,numer0_uno=};   //zero为0,one为1

3、取值范围

enum bits{one=,two=,four34,eight=};
bits myflag;
myflag=bits();//正确,6不是枚举值,但是它在1~8中间

【原创】一起学C++ 之enum ---------C++ primer plus(第6版)的更多相关文章

  1. 【原创】一起学C++ 之 字符串 ---------C++ primer plus(第6版)

    C++ Primer Plus 第6版 字符串:是存储在内存的连续字节中的一系列字符. C++处理字符串的方式有2种: 一.来自C语言.常被称为C-风格字符串(C-Style-string) 1)从字 ...

  2. 【原创】一起学C++ 之指针、数组、指针算术 ---------C++ primer plus(第6版)

    C++ Primer Plus 第6版 指针和数组基本等价的原因在于指针算术! 一.指针 ⑴整数变量+1后,其值将增加1: ⑵指针变量+1后,增加的量等于它指向的类型的字节数: ⑶C++将数组名解析为 ...

  3. 读书笔记之:C++ Primer (第4版)及习题(ch12-ch18) [++++]

    读书笔记之:C++ Primer (第4版)及习题(ch12-ch18) [++++] 第12章 类 1. 类的声明与定义:前向声明,不完全类型 2. 从const函数返回*this 3. 可变数据成 ...

  4. C++ Primer中文版(第5版)

    <C++ Primer中文版(第5版)> 基本信息 作者: (美)Stanley B. Lippman(斯坦利 李普曼)    Josee Lajoie(约瑟 拉乔伊)    Barbar ...

  5. c++ primer plus 第6版 部分二 5- 8章

    ---恢复内容开始--- c++ primer plus 第6版 部分二    5-  章 第五章 计算机除了存储外 还可以对数据进行分析.合并.重组.抽取.修改.推断.合成.以及其他操作 1.for ...

  6. c++ primer plus 第6版 部分一 1-4章

    c++ primer plus 第6版 源代码 ---编译器---目标代码---连接程序(启动代码--库代码)---可执行代码 源代码扩展名:c   cc   cxx     C    cpp     ...

  7. 02--读书笔记之:C++ Primer (第4版)及习题

    推荐博客:http://www.cnblogs.com/xkfz007/archive/2012/08/15/2639381.html 第2章 数据和基本类型 1. 整型 2. 习题:左值和右值 3. ...

  8. c++学习书籍推荐《C++ Primer(中文版)(第5版)》下载

    百度云及其他网盘下载地址:点我 编辑推荐 <C++ Primer(中文版)(第5版)>编辑推荐:一书在手,架构无忧:三十位一线架构师真知实践:百位架构师献计献策:十万文字尽显架构精华. 媒 ...

  9. C++ Primer Plus 第六版笔记

    C++ Primer Plus 第六版笔记 关于对象声明的思考 转自:http://www.cnblogs.com/weiqubo/archive/2009/11/02/1930042.html C+ ...

随机推荐

  1. 获取设置dom属性

    getAttribute():获取dom节点属性,带一个参数,表示要获取的属性使用方法:object.getAttribute("id"); setAttribute():设置do ...

  2. Linux 服务器相关的一下链接

    Apache 虚拟主机 VirtualHost 配置 以下是各操作系统的配置方法. Redhat Enterprise Linux Ubuntu Linux Windows Mac OS http:/ ...

  3. iOS7 设置隐藏状态栏(status bar)

    在info.plist 添加 UIViewControllerBasedStatusBarAppearance(View controller-based status bar appearance) ...

  4. 一个响应式数据库框架SQLBrite,完美解决数据库和UI的同步更新!

    相信小伙伴们在开发中或多或少都可能遇到过这样的问题:打开一个应用后,为了快速响应,先将数据库中的数据呈现给用户,然后再去网络上请求数据,请求成功之后将数据缓存至数据库,同时更新UI,但是我们经常会这样 ...

  5. oracle学习总结3

    1:ddl语句创建一张学生表 create table stu(id number(6) not null,name varchar2(20),age number(3),gender char(1) ...

  6. phpize php扩展模块安装

    安装(fastcgi模式)的时候,常常有这样一句命令:/usr/local/webserver/php/bin/phpize一.phpize是干嘛的?phpize是什么东西呢?php官方的说明:htt ...

  7. 敌情篇 ——DDoS攻击原理

    敌情篇 ——DDoS攻击原理 DDoS攻击基础 DDoS(Distributed Denial of Service,分布式拒绝服务)攻击的主要目的是让指定目标无法提供正常服务,甚至从互联网上消失,是 ...

  8. makefile文件制作入门

    一.首先,看一下最简单的C文件 //hello.c文件 #include <stdio.h> void main() { printf("hello world\n") ...

  9. dapper关联关系查询小测试

    测试实体类(表结构) public class User { public int user_id { get; set; } public string user_name { get; set; ...

  10. 使用FreeMarker生成静态HTML

    1.FreeMarker需要添加的Maven依赖: <dependency> <groupId>org.freemarker</groupId> <artif ...