enum

C++语言程序化设计——第一次作业

社会主义新天地 提交于 2019-11-29 16:02:58
C++语言程序化设计——第一次作业 枚举类型教学教案 一、课题 自定义数据类型——枚举类型enum 二、教学目的 通过实验教学加深学生对枚举类型的掌握及运用 三、课型 新授课、练习课 四、教学重点 枚举类型的认识及运用 五、教学过程 1、枚举类型概念引入 一场比赛只有胜、负、平局、比赛取消四种情况;一个袋子里只有红、黄、蓝、白、黑五种颜色的小球;一个星期只有七天······上述情况每种数据只有有限的几种情况,使用int、char来定义它们未尝不可,但是对数据的合法性检查却十分麻烦。我们为何不将变量可取得值一一列举出来,构成一个自定义数据类型——枚举类型,这样便能简便很多。 2、枚举类型声明形式 enum 枚举类型名 {变量值列表}; 例如: enum Weekday {SUN, MON, TUE, WED, THU, FRI, SAT}; 3、枚举类型应用说明 (1)对枚举元素按常量处理,不能对它们赋值。例如,下面的语句是非法的: SUN= 0; //SUN是枚举类型,此语句非法 (2)枚举元素具有默认值,依次为:0,1,2,···。 (3)也可在声明时另行定义枚举元素的值,如: enum Weekday {SUN=7, MON=1, TUE, WED, THU, FRI, SAT}; 定义SUN为7,MON为1,以后顺序加1,SAT为6. (4)枚举值可以进行关系运算。 (5

枚举类型enum

江枫思渺然 提交于 2019-11-29 15:40:55
枚举类型enum: 1、为什要用枚举类型? 如果变量中需要几种可能存在的值,那么就可以定义为枚举类型,就是将变量或对象可能存在的值一一列举出来。此外,对一些只有有限的几种可能值的数据对其合法性的检查也十分方便。 2、枚举类型声明形式:enum 枚举类型名 {变量值列表}; 列如 enum Weekday{sunday,monday,tuesday,wednesday,thursday,friday,saturday}; 它具有默认值从0开始依次为0、1、2……其中对于枚举元素按常量处理对其进行赋值是错误的,列如定义 “sunday=0;” 是非法的。若想定义sunday不从0定义,便可在声明类型时直接定义,但后面未定义的变量的值将以前面最近的变量定义的数为参考依次往后。列如 enum Weekday {sunday=7,monday,tuesday,wednesday,thursday,friday,saturday}; 上述枚举中monday的值为8。 3、强制类型转换:因为枚举相当于是整数的子集,因此整数值不能直接赋值给枚举变量,需进行强制转换;此外该赋值的整数在枚举定义范围内应存在才能转换成功。 以下是错误代码: ``` enum Weekday{Sun,Mon,Tue,Wed,Thu,Fri,Sat}; Weekday day1,day2; day2=1; 未进行强制转换

枚举类型enum(C++语言)

笑着哭i 提交于 2019-11-29 14:20:20
一、关于enum 在实际问题中, 有些变量的取值被限定在一个有限的范围内 。比如一场比赛的结果只有胜、负、平局、比赛取消4种情况;一个袋子里只有红、黄、蓝、白、黑5种颜色的球;一个星期只有星期一、星期二、……、星期日7天。上述的数据只有有限的几种可能值,虽可以用int、char等类型来表示它们,但对数据合法性的检查却是一件很麻烦的事情。C++中的枚举类型专门用来解决这些问题。 枚举类型的声明形式如下: enum 枚举类型名 {变量值列表}; 例如: enum Weekday {SUN,MON,TUE,WED,THU,FRI,SAT}; 【注】枚举类型是一种基本数据类型,而不是一种构造类型 枚举变量的说明 设有变量a,b,c被说明为上述的Weekday,可采用下述任一种方式: enum Weekday {MON,TUE,WED,THU,FRI,SAT}; enum a,b,c; 或者 enum Weekday {MON,TUE,WED,THU,FRI,SAT}a,b,c; 或者 enum {MON,TUE,WED,THU,FRI,SAT}a,b,c; 二、枚举类型的应用说明 枚举元素按常量处理,不能对其赋值。例如: SUN=0; //SUN是枚举元素,此语句非法 枚举元素具有默认值,依次从0开始。例如,SUN的值为0,MON的值为1……SAT的值为6。 可以在声明时对其赋值

关于C++枚举类型enum

不打扰是莪最后的温柔 提交于 2019-11-29 13:20:21
关于C++枚举类型enum 一、何为枚举类型? 枚举类型(enumeration)是C++中的一种派生数据类型,它是由用户定义的若干枚举常量的集合。 声明形式: enum 枚举名 {变量列表}; 例如: enum Weekday{SUN,MON.TUE,WED,THU,FRI,SAT}; 定义枚举数据类型变量,例如: Weekday myweekday; (注意数据类型是Weekday而不是enum Weekday) 二、枚举类型应用说明 枚举元素具有默认数值,它们依次为:0,1,2,3,...。例如上例中SUN的值为0,MON的值为1,TUE为2,...,SAT为6。 也可以在声明中另行定义枚举元素的值,如: enum Weekday{SUN=7,MON=1,TUE,WED,THU,FRI,SAT}; 定义SUN为7,MON为1,以后顺序加1,TUE为2,WED为3,...,SAT为6。 对枚举元素按 常量 处理,但不能对它们直接赋予常量值。例如,下面的的语句是错误的: SUN=7;//SUN是枚举元素,不能直接赋予常量值 如需要将整数附值给枚举变量,应进行 强制类型转换 ,例如: SUN=(Weekday)7;//在值前面加(类型)是常用的强制类型转换方法 枚举值可以进行关系运算: 1)可以使用关系运算符来比较两个枚举变量。例如,以下 if 语句判断存储在

C#&.Net干货分享- 构建PrinterHelper直接调用打印机相关操作

浪子不回头ぞ 提交于 2019-11-29 06:03:53
namespace Frame.Printer { /// <summary> /// /// </summary> public class PrinterHelper { private PrinterHelper() { } #region API声明 /// <summary> /// /// </summary> [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)] internal struct structPrinterDefaults { [MarshalAs(UnmanagedType.LPTStr)] public String pDatatype; public IntPtr pDevMode; [MarshalAs(UnmanagedType.I4)] public int DesiredAccess; }; /// <summary> /// /// </summary> /// <param name="printerName"></param> /// <param name="phPrinter"></param> /// <param name="pd"></param> /// <returns></returns> [DllImport("winspool.Drv",

ClickHouse

别来无恙 提交于 2019-11-29 01:33:42
ClickHouse 是俄罗斯的Yandex于2016年开源的列式存储数据库(DBMS),主要用于在线分析处理查询(OLAP),能够使用SQL查询实时生成分析数据报告 1 安装前的准备 1.1 CentOS取消打开文件数限制 在/etc/security/limits.conf、/etc/security/limits.d/90-nproc.conf这2个文件的末尾加入一下内容: [root@hadoop101 ~]# vim /etc/security/limits.conf 在文件末尾添加: * soft nofile 65536 * hard nofile 65536 * soft nproc 131072 * hard nproc 131072 [root@hadoop101 ~]# vim /etc/security/limits.d/90-nproc.conf 在文件末尾添加: * soft nofile 65536 * hard nofile 65536 * soft nproc 131072 * hard nproc 131072 重启服务器之后生效,用ulimit -n 或者ulimit -a查看设置结果 [root@hadoop101 ~]# ulimit -n 65536 1.2 CentOS取消SELINUX 修改/etc/selinux

c++11 强类型枚举

为君一笑 提交于 2019-11-29 00:13:48
1. 枚举:分本别类和数值的名字 程序中需要“数值的名字”时,有三种方式实现: (1)宏 #define Male 0 #define Female 1 (2)匿名的enum enum { Male, Female }; (3)静态常量 const static int Male = 0; const static int Female = 1; 2. 有缺陷的枚举 具名的enum类型的名字以及enum的成员的名字都是全局可见的。 以下会出错: #include <iostream> using namespace std; namespace T { enum TYPE { General, Light, Medium, Heavy }; } namespace { enum Category { General = 1, Pistol, MachineGun, Cannon }; } int main() { T::Type t = T::light; if (t == General) //忘记使用namespace cout << "General Weapon" << endl; return 0; } 另外,C++中枚举被设计为常量数值的“别名”的本性,所以枚举的成员总是可以被隐式地转换为整形。 枚举类型所占用的空间大小也是一个不确定量。 3. 强类型枚举以及c+

24-特殊数据类型

不问归期 提交于 2019-11-28 17:50:45
枚举类 在Java中,我们可以通过static final来定义常量,无论是int常量还是String常量,使用这些常量来表示一组枚举值的时候,有一个严重的问题就是,编译器无法检查每个值的合理性。为了让编译器能自动检查某个值在枚举的集合内,并且,不同用途的枚举需要不同的类型来标记,不能混用,我们可以使用enum来定义枚举类。 public class Main { public static void main(String[] args) { Weekday day = Weekday.SUN; if (day == Weekday.SAT || day == Weekday.SUN) { System.out.println("Work at home!"); } else { System.out.println("Work at office!"); } } } enum Weekday { SUN, MON, TUE, WED, THU, FRI, SAT; } 定义枚举类是通过关键字enum实现的,只需依次列出枚举的常量名。 和int定义的常量相比,enum常量本身带有类型信息,即Weekday.SUN类型是Weekday,编译器会自动检查出类型错误,而且不同类型的枚举不能互相比较或者赋值,也不可能引用到非枚举的值。 enum的比较

单例模式学习(一)

巧了我就是萌 提交于 2019-11-28 13:10:26
什么是单例?为什么要用单例? 一个类被设计出来,就代表它表示具有某种行为(方法),属性(成员变量),而一般情况下,当我们想使用这个类时,会使用 new 关键字,这时候jvm会帮我们构造一个该类的实例。而我们知道,对于 new 这个关键字以及该实例,相对而言是比较耗费资源的。所以如果我们能够想办法在jvm启动时就 new 好,或者在某一次实例 new 好以后,以后不再需要这样的动作,就能够节省很多资源了。 哪些类可以使用单例? 一般而言,我们总是希望 无状态 的类能够设计成单例,那这个 无状态 代表什么呢? 简单而言,对于同一个实例,如果多个线程同时使用,并且不使用额外的线程同步手段,不会出现线程同步的问题,我们就可以认为是 无状态 的,再简单点:一个类没有成员变量,或者它的成员变量也是 无状态 的,我们就可以考虑设计成单例。 实现方法 好了,我们已经知道什么是单例,为什么要使用单例了,那我们接下来继续讨论下怎么实现单例。 一般来说,我们可以把单例分为 行为上的单例 和 管理上的单例 。 行为上的单例 代表不管如何操作(此处不谈cloneable,反射),至始至终jvm中都只有一个类的实例,而 管理上的单例 则可以理解为:不管谁去使用这个类,都要守一定的 规矩 ,比方说,我们使用某个类,只能从指定的地方’去拿‘,这样拿到就是同一个类了。 而对于 管理上的单例

Java 枚举

僤鯓⒐⒋嵵緔 提交于 2019-11-28 12:43:45
知识点 概念 enum 的全称为 enumeration, 是 JDK 1.5 中引入的新特性。 在Java中,被 enum 关键字修饰的类型就是枚举类型。形式如下: enum Color { RED, GREEN, BLUE } 如果枚举不添加任何方法, 枚举值默认为从0开始的有序数值 。以 Color 枚举类型举例,它的枚举常量依次为 RED:0,GREEN:1,BLUE:2 。 枚举的好处 :可以将常量组织起来,统一进行管理。 枚举的典型应用场景 :错误码、状态机等。 枚举类型的本质 尽管 enum 看起来像是一种新的数据类型,事实上, enum是一种受限制的类,并且具有自己的方法 。 创建enum时,编译器会为你生成一个相关的类,这个类继承自 java.lang.Enum 。 java.lang.Enum 类声明 public abstract class Enum<E extends Enum<E>> implements Comparable<E>, Serializable { ... } 枚举的方法 在enum中,提供了一些基本方法: values() :返回 enum 实例的数组,而且该数组中的元素严格保持在 enum 中声明时的顺序。 name() :返回实例名。 ordinal() :返回实例声明时的次序,从0开始。 getDeclaringClass()