c++ 踩坑大法好 枚举
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++ 踩坑大法好 枚举的更多相关文章
- c++踩坑大法好 typedef和模板
		1,typedef字面意思,自定义一种数据类型 语法:typedef 类型名称 类型标识符; 基本用法: 1) 为基本数据类型定义新的类型名. 2) 为自定义数据类型(结构体.公用体和枚举类型)定义简 ... 
- c++踩坑大法好  数组
		1,c++遍历数组 int数组和char数组不同哦,int占4位,char占1未,同理double也不同.基本遍历方法: ] = { ,,, }; ]); printf("len of my ... 
- c++踩坑大法好  赋值和指针的区别
		1,先说结论: 两个指针指向同一个结构,一个改了结构,另一个也会改掉. 两个指针指向同一个结构,修改了其中一个的指向,并且改了其中的内容,另一个不为所动. 2,看例子 main.cpp #includ ... 
- c++  踩坑大法好  char字符,char数组,char*
		1,基本语法 1,定义一个char字符: char hehe='a'; //单引号 2,定义一个由char字符组成的数组: char daqing[] = "abcd"; char ... 
- c++ 踩坑大法好 复合数据类型------vector
		1,vector是啥? 是具有动态大小的数组,具有顺序.能够存放各种类型的对象.相比于固定长度的数组,运行效率稍微低一些,不过很方便. 2,咋用? 声明: vector <int> vi; ... 
- c++踩坑大法好  宏定义 头文件
		1,c++宏定义是干啥的?防止重复引用,如何防止重复引用? //a.h //声明一个类,和其他声明 #include <iostream> class A{ public: static ... 
- 踩坑系列の Oracle dbms_job简单使用
		二话不说先上代码 --创建存储过程 create or replace procedure job_truncateState is begin --此处就是要定时执行的sql execute imm ... 
- JavaScript 新手的踩坑日记
		引语 在1995年5月,Eich 大神在10天内就写出了第一个脚本语言的版本,JavaScript 的第一个代号是 Mocha,Marc Andreesen 起的这个名字.由于商标问题以及很多产品已经 ... 
- Go“一个包含nil指针的接口不是nil接口”踩坑
		最近在项目中踩了一个深坑--"Golang中一个包含nil指针的接口不是nil接口",总结下分享出来,如果你不是很理解这句话,那推荐认真看下下面的示例代码,避免以后写代码时踩坑. ... 
随机推荐
- Apache Solr JMX服务远程代码执行漏洞复现
			0x00 漏洞介绍 该漏洞源于默认配置文件solr.in.sh中的ENABLE_REMOTE_JMX_OPTS配置选项存在安全风险. Apache Solr的8.1.1和8.2.0版本的自带配置文件s ... 
- C#连接数据库的方法
			using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using Sy ... 
- Luarocks 安装艰难过程
			https://www.cnblogs.com/fanxiaojuan/p/11551268.html 
- RHEL7开机不能正常进入系统(图形化界面)
			今天在重启RHEL7的虚拟机后一直无法正常开机,一直提示输入管理员密码,如下图所示: 输入密码后进入命令行模式,经排查出现此现象的问题是在挂载银盘的时候文件格式写错,在格式化硬盘的时候格式化的是xfs ... 
- window10家庭版解决IIS中万维网服务的安全性中无Windows身份验证
			首先在左下角输入cmd搜索->命令提示符->以管理员身份运行->然后复制下面一段命令: dism /online /norestart /add-package:%SystemRoo ... 
- CSRF防护
			CSRF防护 (待完善...) 
- tomcat - 解决 org.bouncycastle.asn1.ASN1Boolean 非法循环依赖的错误
			背景 记录遇到一次奇怪的错误,在发布war包到Tomcat的时候,出现了org.bouncycastle.asn1.ASN1Boolean非法循环依赖的错误. INFO: Deploying web ... 
- SQL JOIN 的解析
			1.SQL语句结构 select distinct < select_list > from < left_table > < join_type > joi ... 
- 三维偏序[cdq分治学习笔记]
			三维偏序 就是让第一维有序 然后归并+树状数组求两维 cdq+cdq不会 告辞 #include <bits/stdc++.h> // #define int long long #def ... 
- phpcms v9全站点击量排行代码
			前台: <ul> {pc:content action="sitehits" siteid="1" num="10" order ... 
