当前位置:首页 > 大杂烩 > 正文内容

c++ enum,c++ 枚举,c++ enum应用场景,c++ enum用法,c++ 枚举用法

高老师5年前 (2020-03-13)大杂烩2004

(1).先看概念

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

(2).基本语法表示

enum 枚举名{ 
     标识符[=整型常数], 
     标识符[=整型常数], 
... 
    标识符[=整型常数]
} 枚举变量;

定义一个:

enum fruit {
	apple, 
	banana,
	pear,
	fig
} product;

(3).上面的fruit和apple, banana,pear,fig以及product如何理解?

    (3.1)首先fruit是一个数据类型,apple, banana,pear,fig是fruit数据类型的元素。

    (3.2)product是一个变量,它是一个fruit类型的变量,如果你觉得比较难理解,你可以把上面的代码理解为下面的代码:

//先定义类型
enum fruit {
	apple, 
	banana,
	pear,
	fig
};

//再使用类型
fruit product;

我们应该描述product这个变量是fruit类型,不能去说product属于枚举类型

(4).enum的每个元素是有默认值的,例如上面的apple, banana,pear,fig元素的默认值分别为0,1,2,3

(5).enmu的每个元素虽然有默认值,但是支持自定义,例如

enum fruit {
	apple = 4, 
	banana = 3,
	pear = 2,
	fig = 1
};

(6).enum的元素部分设置值,部分不设置值,编译时默认从0开始设置默认值,如果前面的元素已经设置值,后面的元素没有设置值会+1处理

enum fruit {
	apple, 
	banana = 3,
	pear,
	fig1
};

例如上面的元素的常量值分别为:0,3,4,5

(7).枚举类型的元素只能以标识符形式表示,所以下面的写法都是瞎几把写,乱写,错误的写法

enum fruit {'a', 'b','c','d'};
enum fruit {100, 200,300,400};

(8).应用场景是可以代替const,普通变量使用枚举的元素的常量值的用法,输出了0和1。可以enum可以帮助我们创建常量

//定义枚举
enum fruit {apple,banana,pear,fig};

//普通变量使用枚举元素的常量值
int a = apple;    //0
int b = banana;   //1
	
//输出 
std::cout << a << b << std::endl;

(9).enum代替const有什么好处呢?先看enum和const定义一个性别的代码:

//定义enum gender 表示性别:1男 2女
enum gender { male = 1, female = 2 };

//常量定义表示男女
const int _male = 1;
const int _female = 2;

可以看到const定义的常量男和女你只能从字面去理解它们是关联的,但是enum看代码就知道都是属于gender性别的组,意味着给常量设置了组,方便管理。并且在开发中我们团队可以约束性别存储均统一使用已经定义好的enum类型

(10).enum会自动转换成int,例如

//enum
enum gender { male = 1, female = 2 };

gender a = male;
gender b = female;

int c, d;
c = a; // change to 1
d = b; // change to 2

(11).从int转换到enum

enum gender { male = 1, female = 2 };

int a = 1;
a = gender(2);

扫描二维码推送至手机访问。

版权声明:本文由高久峰个人博客发布,如需转载请注明出处。

本文链接:https://blog.20230611.cn/post/544.html

分享给朋友:

“c++ enum,c++ 枚举,c++ enum应用场景,c++ enum用法,c++ 枚举用法” 的相关文章

Git推送文件到远程仓库

Git推送文件到远程仓库

1.远程仓库的协作模式开发者把自己最新的版本推到线上仓库,同时把线上仓库的最新代码,拉到自己本地即可2.注册git帐号国外: http://www.github.com国内: http://git.oschina.net2.在码云创建项目,不要初始化readmegit push https://gi...

Git日志查看和版本切换

Git日志查看和版本切换

日志查看:git log版本切换:方式1:git  reset  --hard  HEAD^   倒退一个版本git  reset  --hard  HEAD^^  倒退两个版本方式2:(版本号的形式,建议版本号码补充完...

redis安装教程

redis安装教程

1.文件redis-2.6.14.tar.gz的上传 /home/john/创建rdtar文件夹 上传redis-2.6.14.tar.gz至rdtar文件夹  2.解压文件  cd /home/john/rdtar tar &n...

 vsftp 命令,vsftp常用操作命令

vsftp 命令,vsftp常用操作命令

vsftp常用操作命令:1.启动vsftp: service vsftpd start 2.重启vsftp: service vsftpd restart3.修改用户密码:passwd lao8org4.创建用户:useradd -d /data/wwwroot/blog -s /sbin...

navicat for mysql 11.1.13 企业破解版

navicat for mysql 11.1.13 企业破解版

navicat for mysql 11.1.13 企业破解版.绿色软件免安装,请直接打开安装说明.一定要看说明.下载地址:          http://pan.baidu.com/s/1dFINxNN下载链接失效,直接点击上方QQ呼叫...

VMware CentOS网络连接设置

VMware CentOS网络连接设置

1.设置桥接模式,复制物理网络状态2.编辑/etc/sysconfig/network-scripts/ifcfg-eth0以下配置:(如果没有自己创建对应选项)ONBOOT=yes NM_CONTROLLED=noBOOTPROTO=staticIPADDR=192.168.2.240...