1,枚举是个啥?

c++允许程序员创建自己的数据类型,枚举数据类型是程序员自定义的一种数据类型,其值是一组命名整数常量。

enum day{mon,tue=,wed,thu,fri,sat,sun};
//定义一个叫day的数据类型,如果没有赋值,默认从0开始,mon=0,tue=1。。。如果赋值过了,就像tue=2,那么下一个会+1,wed=3,thu=4,,,

2,枚举怎么用?

#include "pch.h"
using namespace std; int main() {
enum day{mon,tue,wed,thu,fri,sat,sun};
day today;
today = mon;//合法
today = ;//不合法,tue的值虽然是1,但是1并不对应着tue,int类型不能赋值给day类型的变量
int hehe = mon;//合法,枚举量是整形 return ;
}

枚举可以简写:

enum {red,green,white,black,blue};
//省略新类型名的简写,这样做更加关注于定义的符号常量

3,枚举使用

#include "pch.h"
using namespace std;
enum {red,green,orange};
int main() {
int favorcolor = ;
switch(favorcolor) {
//注意c++中switch的一个特性,它跳到1以后,不加break会接着依次执行其下的所有case语句,所以,要根据情况加上break
case red:printf("u like red\n"); break;
case green:printf("u like green\n"); break;
case orange:printf("u like orange\n"); break;
}
return ;
}

4,新式的枚举用法

#include <iostream>
#include <algorithm>
#include <vector>
using namespace std; enum Alert { green, yellow, orange, red }; // traditional enum
enum class Color { red, blue }; // new enum int main() {
int a1 = green;
int a2 = Alert::yellow;
//传统的枚举类型Alert内部的数据作用范围是全局的,加不加命名空间都可以访问 Color a3 = Color::red;
//新式的枚举类型的名称的作用域在类中,必须加上命名空间进行访问 int i1 = Alert::yellow;
int i2 = Color::red;//错误
//新式的枚举值不可以转换为其他类型 enum class Color1:int { red, blue };
enum class Color2 :char { red = 'r', blue = 'b', black };
//可以用冒号选择枚举的底层数据类型 return ;
}

c++ 踩坑大法好 枚举的更多相关文章

  1. c++踩坑大法好 typedef和模板

    1,typedef字面意思,自定义一种数据类型 语法:typedef 类型名称 类型标识符; 基本用法: 1) 为基本数据类型定义新的类型名. 2) 为自定义数据类型(结构体.公用体和枚举类型)定义简 ...

  2. c++踩坑大法好 数组

    1,c++遍历数组 int数组和char数组不同哦,int占4位,char占1未,同理double也不同.基本遍历方法: ] = { ,,, }; ]); printf("len of my ...

  3. c++踩坑大法好 赋值和指针的区别

    1,先说结论: 两个指针指向同一个结构,一个改了结构,另一个也会改掉. 两个指针指向同一个结构,修改了其中一个的指向,并且改了其中的内容,另一个不为所动. 2,看例子 main.cpp #includ ...

  4. c++ 踩坑大法好 char字符,char数组,char*

    1,基本语法 1,定义一个char字符: char hehe='a'; //单引号 2,定义一个由char字符组成的数组: char daqing[] = "abcd"; char ...

  5. c++ 踩坑大法好 复合数据类型------vector

    1,vector是啥? 是具有动态大小的数组,具有顺序.能够存放各种类型的对象.相比于固定长度的数组,运行效率稍微低一些,不过很方便. 2,咋用? 声明: vector <int> vi; ...

  6. c++踩坑大法好 宏定义 头文件

    1,c++宏定义是干啥的?防止重复引用,如何防止重复引用? //a.h //声明一个类,和其他声明 #include <iostream> class A{ public: static ...

  7. 踩坑系列の Oracle dbms_job简单使用

    二话不说先上代码 --创建存储过程 create or replace procedure job_truncateState is begin --此处就是要定时执行的sql execute imm ...

  8. JavaScript 新手的踩坑日记

    引语 在1995年5月,Eich 大神在10天内就写出了第一个脚本语言的版本,JavaScript 的第一个代号是 Mocha,Marc Andreesen 起的这个名字.由于商标问题以及很多产品已经 ...

  9. Go“一个包含nil指针的接口不是nil接口”踩坑

    最近在项目中踩了一个深坑--"Golang中一个包含nil指针的接口不是nil接口",总结下分享出来,如果你不是很理解这句话,那推荐认真看下下面的示例代码,避免以后写代码时踩坑. ...

随机推荐

  1. Warning: curl_setopt() [function.curl-setopt]: CURLOPT_FOLLOWLOCATION cannot be activated when in safe_mode or an open_basedir is set…

    php打印小票错误提示:Warning: curl_setopt() [function.curl-setopt]: CURLOPT_FOLLOWLOCATION cannot be activate ...

  2. 使用 TypeScript & mocha & chai 写测试代码实战(17 个视频)

    使用 TypeScript & mocha & chai 写测试代码实战(17 个视频) 使用 TypeScript & mocha & chai 写测试代码实战 #1 ...

  3. 大数据才是未来,Oracle、SQL Server成昨日黄花?

    1. 引子**** 有人在某个专注SQL的公众号留言如下: 这个留言触碰到一个非常敏感的问题:搞关系型数据库还有前途吗?现在都2020年了,区块链正火热,AI人才已经"过剩",大数 ...

  4. [大数据技术]Kettle报OPTION SQL_SELECT_LIMIT=DEFAULT错误的解决办法

    百度得到的解决方式都是说mysql通过jdbc链接的时候会进行测试’SET OPTION SQL_SELECT_LIMIT=DEFAULT’,但是5.6以后的版本弃用了set的方式. 我用的MySQL ...

  5. 吴裕雄--天生自然 python开发学习笔记:Git安装配置流程

  6. Go 使用小记

    1.不能使用在运行时计算的值实例化这样的数组. 而是使用make初始化具有所需长度的切片. db := ConnMysql() rows, err := db.Query("select r ...

  7. es6转码和package.json中的配置

    在线实时转换 需要babel-register .babelrc中: { "presets": [ "es2015" ] } 项目中main.js配置: 前提是 ...

  8. nginx模块之ngx_http_fastcgi_module

    nginx支持LNMP 安装php-fpm yum install php-fpm -y 使用/etc/php-fpm.d/www.conf配置文件默认配置即可 打开php配置: vim /etc/n ...

  9. LOJ#6038. 「雅礼集训 2017 Day5」远行 [LCT维护子树的直径]

    树的直径一定是原联通块4个里的组合 1.LCT,维护树的直径,这题就做完了 2.直接倍增,lca啥的求求距离,也可以吧- // powered by c++11 // by Isaunoya #inc ...

  10. openlayers编辑区域

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...