enum枚举类型作为成员变量

2023-05-16

Enum是枚举类型。

定义形式一:

Enum 枚举类型名

{枚举常量1(=0),

枚举常量2(=0),

……

}枚举变量1(,枚举变量2,……);

Enum weekday
{     Monday=0,Tuesday,Wednesday,Thursday,Friday=9,Saturday,Sunday

}today;

Weekday 为枚举类型名,today为枚举变量,大括号里面的Monday,Tuesday等都是枚举常量。其中,Monday为0,Tuesday为1,Wednesday=2,Thursday=3,Saturday=10,Sunday=11.

枚举类型还有另外一种定义形式,即省略类型名。

定义形式二:

Enum

{枚举常量1(=0),

枚举常量2(=0),

……

}枚举变量1(,枚举变量2,……);

 

如Enum

{     Monday=0,Tuesday,Wednesday,Thursday,Friday=9,Saturday,Sunday

}today;

虽然省略了类型名,但C++会自动给该枚举类型取一个类型名,形如__unamed_0000_1。

 

注意:

1.枚举常量的值不允许再修改。因为它是常量。如Monday=4;这是错的。

2.不能用整数给枚举变量赋值。

如today=0;这是错的。因为类型不匹配。应该改为:today=(weekday)0;

但如果枚举类型的定义形式为第二种形式,则today=(weekday)0也是错误的。原因很简单。因为weekday未定义。假设此时,C++给该枚举类型取的类型名为__unnamed_0000_1,那么,today=(__unnamed_0000_1)0;是否正确呢?

答案是否定的。

 

如果枚举类型定义在另一个类的定义中,则枚举变量,枚举常量都可以做为该类的成员变量。但是,枚举类型名是类的静态类型。

#include <iostream>

using namespace std;

class myclass

{

public:

     enum weekday

     {

         monday=0,tuesday=1,wednesday,thursday,friday,saturday,sunday

     }first,second;//枚举类型的第一种定义形式,枚举类型名为weekday。

    

};

int main()

{

     myclass aclass;

     aclass.first=myclass::monday;//枚举常量Monday作为类的成员变量

     aclass.first=myclass::weekday::moday;//编译器警告:warning C4482: 使用了非标准扩展: 限定//名中使用了枚举“myclass::weekday”。不应该采取这种方法。

    aclass.first=(myclass::weekday)0;// 整数赋给枚举变量。但是必须类型转化。适用于枚举变量的//的第一种定义形式。

}

 

调试环境为windowsxp+vs2008

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

enum枚举类型作为成员变量 的相关文章

  • C++枚举enum使用详解

    目录 一 什么是枚举enum WHAT 二 使用枚举enum的场景 WHEN and WHERE 三 如何使用枚举enum HOW 1 xff09 枚举的定义 2 xff09 枚举的初始化 3 xff09 指定枚举类型 4 声明枚举对象 5
  • C++ enum 和enum class

    文章目录 C 43 43 enum 和 enum class共同点区别 C 43 43 enum 和 enum class 在C 43 43 中 xff0c enum 是一种定义枚举类型的方法 一个枚举是一个整数值的命名集合 可以通过以下方
  • C语言 -- enum 枚举的使用

    一 枚举的定义 枚举是C语言的一种基本的数据类型 enum 枚举名 枚举元素1 枚举元素2 我们以星期举例 enum DAY MON 61 1 TUE WED THU FRI SAT SUN 如果没有赋值 xff0c 第一个枚举成员的默认值
  • C#中Enum枚举类型的简单使用

    枚举类型的介绍 xff1a 枚举类型是由一组特定常量构成的一组数据结构 xff0c 是值类型的一种特殊形式 xff0c 当需要一个由指定常量集合组成的数据类型时 xff0c 使用枚举类型 枚举声明可以显式地声明 byte sbyte sho
  • C#之enum,枚举类型的简介和使用

    枚举类似于数组 xff0c 但两者的定义方法和设计目的不同枚举中的值会放在栈中枚举类型不能直接放在方法中 xff0c 一般放在命名空间中或与类同级枚举使用enum关键字进行定义 xff0c 枚举类型的定义其实和类的成员定义相似 xff0c
  • c语言enum枚举字符串,c语言enum使用_enum枚举变量

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 二 enum枚举 1 枚举的定义 枚举类型定义的一般形式为 xff1a enum 枚举名 枚举值表 在枚举值表中应罗列出所有可用值 这些值也称为枚举元素 例如 xff1a 该枚举名为weekda
  • c语言枚举做字符类型转换,C# 枚举类型转换字符串 Enum to string

    c 枚举类型转换字符串 enum to string 枚举类型都是值类型 system enum是一个抽象类 abstract class xff0c 所有枚举类型都直接继承自它 xff0c 当然也同时继承了它的所有成员 所有的值类型都是s
  • java枚举(enum)使用详解

    文章目录 前言一 枚举类型定义二 访问成员三 遍历四 在switch xff08 xff09 中使用枚举五 方法1 内置方法1 1 ordinal 用于返回成员的索引1 2 compareTo 用于比较枚举类型中两个成员的索引值1 3 va
  • C++枚举类型enum使用方法(附带可用代码+通俗易懂)

    1 说明 枚举用来表示某类事情的结果 xff1b 例1 xff1a 下棋比赛的三种结果 xff0c 赢 xff0c 和 xff0c 输 xff1b 这里是描述比赛的结果 例2 xff1a 一周7天中的俩种结果 xff0c 工作日和非工作日
  • C++遍历输出enum枚举类型

    enum DAY MON TUE WED THU FRI SAT SUN 问题 如果使用如下方式来遍历 xff0c 则编译器会报类型转换失败错误 xff0c 因为enum类型没有 43 43 运算符 xff0c 也不支持 43 运算 for
  • 枚举(enum)

    一 什么是枚举 我们学习过单例模式 xff0c 即一个类只有一个实例 而枚举其实就是多例 xff0c 一个类有多个实例 xff0c 但实例的个数不是无穷的 xff0c 是有限个数的 例如word文档的对齐方式有几种 xff1a 左对齐 居中
  • C语言枚举类型(C语言enum用法)详解

    在实际编程中 xff0c 有些数据的取值往往是有限的 xff0c 只能是非常少量的整数 xff0c 并且最好为每个值都取一个名字 xff0c 以方便在后续代码中使用 xff0c 比如一个星期只有七天 xff0c 一年只有十二个月 xff0c
  • 推荐一个C++枚举转字符串的开源项目magic_enum

    文章目录 前言magic enum简单介绍具体使用原理简述局限性 简化与改进总结 前言 C 43 43 11引入了强类型的枚举类 enum class 用来代替旧风格枚举enum xff0c 新引入的 enum class 具有诸多优点 x
  • C++详解:枚举类型 --- enum | Xunlan_blog

    文章目录 一 概念二 定义枚举元素表 三 定义枚举对象的操作 四 要点 amp 技巧实例 一 概念 枚举类型 enumeration xff0c 是C 43 43 中的一种派生数据类型 xff0c 是用户创建的一个集合 xff0c 可以增加
  • C++枚举解读(enum)

    提示 xff1a 文章写完后 xff0c 目录可以自动生成 xff0c 如何生成可参考右边的帮助文档 文章目录 前言一 枚举是什么 xff1f 二 使用步骤1 作用域2 隐式类型转换3 显式指定枚举值类型4 指定枚举值的值4 整形显式转换成
  • java枚举(enum)使用详解

    文章目录 前言一 枚举类型定义二 访问成员三 遍历四 在switch xff08 xff09 中使用枚举五 方法1 内置方法1 1 ordinal 用于返回成员的索引1 2 compareTo 用于比较枚举类型中两个成员的索引值1 3 va
  • 枚举(enum)

    一 什么是枚举 我们学习过单例模式 xff0c 即一个类只有一个实例 而枚举其实就是多例 xff0c 一个类有多个实例 xff0c 但实例的个数不是无穷的 xff0c 是有限个数的 例如word文档的对齐方式有几种 xff1a 左对齐 居中
  • java enum(枚举)使用详解 + 总结

    enum 的全称为 enumeration xff0c 是 JDK 1 5 中引入的新特性 xff0c 存放在 java lang 包中 下面是我在使用 enum 过程中的一些经验和总结 xff0c 主要包括如下内容 xff1a 1 原始的
  • C# 枚举 enum(学习心得 17)

    枚举是一组命名整型常量 枚举类型是使用 enum 关键字声明的 C 枚举是值类型 枚举包含自己的值 且不能继承或传递继承 超级小白友好 讲解C 基础 每集5分钟轻松学习 拒绝从入门到放弃 声明 enum
  • C语言枚举类型的大小

    主流编译器如 gcc vc MinGW gcc等枚举变量均为4字节 少量编译器会根据枚举个数做优化 如只有3个枚举值时 size可能为1 enum长度不确定会带来可移植性问题 如果第三方库API接口使用enum类型 编译和调用库时一旦有关e

随机推荐