VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

有编程疑问吗?还请到提问专区发帖提问!
搜索
查看: 1943|回复: 55

《实用C++》第26课 枚举类型及定义新的类型名字

  [复制链接]
01_avatar_middle
online_admins admin 发表于 2018-3-5 01:39:22 | 显示全部楼层 |阅读模式
《实用C++》第26课 枚举类型及定义新的类型名字《实用C++》第26课 枚举类型及定义新的类型名字

1、枚举类型:
如果一个变量只能有几种可能的值,这样的变量可以定义成枚举类型。所谓的 “枚举” 是指可以将变量的值一一列举出来,变量的值只能在列举出来的值的范围内,其他的值对该变量没有意义,例如:星期几、人种颜色、性别、月份 等等。枚举类型也是一种自定义类型。

2、枚举类型的声明:
声明枚举类型用 enum 开头,例如:
enum ESex
{
        ESex_Male, //男性
        ESex_FMale //女性
};

以上就是定义了一个枚举类型 ESex,大括号内部的 ESex_Male、ESex_FMale 称为枚举元素或枚举常量。表示这个枚举类型可能的值。

注意事项:
①、枚举元素按常量处理,所以称作枚举常量。他们不是变量,所以不要对他们进行赋值,即枚举元素的值是固定的;
例如:ESex_Male = 8; 这种是错误的,大家可以在vs2013中试试;

②、枚举元素是常量,所以其也是有值的,他们的值是一个整数,按照元素声明时候的顺序从0开始依次进行+1操作,默认的值就是:0,1,2,3,...
例如,上面的ESex枚举类型中,ESex_Male 的值默认是0,ESex_FMale 的默认值是1,依此类推。

③、枚举元素有默认的值,但也可以在声明的时候指定值,例如:
enum EWeekDay
{
        EWeekDay_1 = 3,
        EWeekDay_2 = 4,
        EWeekDay_3 = 5,
        EWeekDay_4,
        EWeekDay_5,
        EWeekDay_6,
        EWeekDay_7,
};
其中从 EWeekDay_4 开始未赋值,所以按照他的上一个元素的值+1的规则进行默认赋值,也就是 EWeekDay_3 + 1 = 6。
这里面有个注意事项,即,上面赋值的最好是依次增大,不然有可能会造成两个枚举元素是一样的值,例如:
enum EWeekDay
{
        EWeekDay_1 = 3,
        EWeekDay_2 = 2,
        EWeekDay_3 = 1,
        EWeekDay_4,
        EWeekDay_5,
        EWeekDay_6,
        EWeekDay_7,
};

④、枚举值可以用来进行跟整数一样的判断,比较,switch-case 等操作,例如:
int ab = 2;
if(EWeekDay_1 > ab )
{
    //...
}

⑤、虽然枚举类型的变量可以看做是整形类型的变量,但是不能把普通的整数赋值给枚举类型变量,例如:
EWeekDay day = 2;
这种是错误的,除非进行强制类型转换,但是不建议。最好还是:
EWeekDay day = EWeekDay_2;

3、枚举类型举例:枚举类型和结构体类型结合:
struct Student
{
    string name;
    int num;
    ESex sex;
    int age;
};

Student stu;
stu.sex = ESex_Male;

4、用 typedef 类型声明新的类型名字:
除了可以用 struct 结构体,union 联合体,enum 枚举 等自定义类型以外,还可以使用 typedef 声明一个新的类型名字来代替已有的类型名。注意是新的类型名字,只是名字而已,不是一种全新的类型,只是改个名字而已。
例如,我们定义一个无符号的整型int变量可以这样来定义:unsigned int a = 5;
类型的名字比较长,unsigned int,而且以后所有定义无符号的整型int变量都得这么写,那么有没有简单的写法呢,typedef就派上用场了,咱们可以给 unsigned int 改个名字,例如:
typedef unsigned int uint;
uint a = 5;
所以,以后所有的 unsigned int 都可以改成 uint 了,方便吧?同理,其他的类型也都可以使用 typedef 改名,例如:
typedef int myint;
typedef unsigned long ulong;
typedef Student StuT;
typedef EWeekDay EWDay;
以上,都是可以的哦!

5、小作业:
课后自己练习定义枚举类型变量以及使用 typedef 定义新的类型名!

第26课免费试看,下载地址回复后可见:
游客,如果您要查看本帖隐藏内容请回复

#######################################################
获得所有教学视频、课件、源代码以及售后答疑详见:
《实用C++》:http://www.cctry.com/thread-275996-1-1.html
VC驿站官方客服QQ:8260671

#######################################################
《实用C++》第26课 枚举类型及定义新的类型名字《实用C++》第26课 枚举类型及定义新的类型名字

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

98_avatar_middle
online_member tomok 发表于 2018-3-5 09:45:51 | 显示全部楼层
继续学习

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

10_avatar_middle
online_vip08 小菜一碟 发表于 2018-3-6 13:42:06 | 显示全部楼层
继续深入学习

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

60_avatar_middle
online_vip zy89918042 发表于 2018-3-6 18:34:04 | 显示全部楼层

继续学习

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

15_avatar_middle
online_member 976301194 发表于 2018-3-6 20:22:19 | 显示全部楼层

继续学习

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

08_avatar_middle
online_member woliveyou 发表于 2018-3-6 20:28:14 | 显示全部楼层
《实用C++》第26课 枚举类型及定义新的类型名字

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

80_avatar_middle
online_member zp521 发表于 2018-3-6 21:55:59 | 显示全部楼层
坚持学习!!!

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

18_avatar_middle
online_vip 听雨声等你笑 发表于 2018-3-7 09:10:45 | 显示全部楼层
学习学习

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

74_avatar_middle
online_vip08 wssfcn 发表于 2018-3-7 10:01:50 | 显示全部楼层
看看      

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

51_avatar_middle
online_vip zxnnnnn 发表于 2018-3-8 15:35:45 | 显示全部楼层
谢谢分享

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

22_avatar_middle
online_vip jesy 发表于 2018-3-8 22:03:17 | 显示全部楼层
来学习了啊....

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

59_avatar_middle
online_vip robin1234 发表于 2018-3-10 00:43:26 | 显示全部楼层
实用C++》第26课 枚举类型及定义新的类

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

78_avatar_middle
online_member csa 发表于 2018-3-10 12:29:09 | 显示全部楼层
太好啦,又出新课。

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

17_avatar_middle
online_member chenhu 发表于 2018-3-11 11:52:07 | 显示全部楼层
继续学习

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

08_avatar_middle
online_member guanghua1982 发表于 2018-3-11 12:02:25 | 显示全部楼层
最喜欢看老师的教程!

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

18_avatar_middle
online_member Sylm 发表于 2018-3-13 15:28:54 | 显示全部楼层

继续深入学习

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

69_avatar_middle
online_member awfymwvf 发表于 2018-3-15 11:01:48 | 显示全部楼层
谢谢管理,下载看看。

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

94_avatar_middle
online_vip08 Mtong 发表于 2018-3-17 17:58:52 | 显示全部楼层
谢谢管理,下载看看。

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

13_avatar_middle
online_vip 明天你好123 发表于 2018-3-17 18:51:29 | 显示全部楼层
hello world

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

69_avatar_middle
online_member hbjdt 发表于 2018-3-21 18:28:20 | 显示全部楼层
谢谢版主,辛苦了

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /1 下一条

QQ
QQ在线咨询
联系电话
13591366679
手机扫一扫 关注本站精彩内容
wxqrcode

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2018-6-24 17:13

Powered by Discuz! X3.4

© 2009-2018 cctry.com

快速回复 返回顶部 返回列表