zoukankan      html  css  js  c++  java
  • 枚举类型

    枚举类型的作用是将一组整型常量组织在一起。和类一样,每个枚举类型定义了一个新的类型。枚举属于字面常量类型。

    C++11之后枚举类型分为两类:1.限定作用域的枚举类型 2.不限定作用域的枚举类型

    定义

    限定作用域的枚举类型 : enum class/struct name [:type]{逗号分隔的枚举成员列表};

    不限定作用域的枚举类型:enum [name] [:type]{逗号分隔的枚举成员列表};

    操作

    1.初始化、赋值:枚举类型对象只能被其成员或同类型的其它对象初始化、赋值。

    2.比较操作:枚举类型对象可同其它同类型的对象或同其成员进行==、!=比较。

    作用域

    限定作用域的枚举类型:枚举成员的作用域在枚举类型内部

    不限定作用域的枚举类型:枚举成员的作用域与枚举类型一致

    与整形的关系

    限定作用域的枚举类型:不能隐式转换成整型

    不限定作用域的枚举类型:可隐式转换成整型

    整形不能隐式转换成枚举类型。

    enum的存储类型

    c++11可以指定编译器使用哪种整型来存储定义的枚举类型。如 enum class test : unsigned int {TEST1,TEST2};

    如果不指定存储类型,则限定作用域的枚举类型使用int来作为存储类型,如果枚举成员的取值超过其表达范围会编译错误。

    如果不指定存储类型,则不限定作用域的枚举类型使用什么类型由编译器负责,编译器只要保证存储类型够大可以存储所有成员即可,不同的编译器可能会使用不同的存储类型。

    enum类型的前置声明

    enum也可以进行前置声明,不过不限定作用域的枚举类型必须指明其存储类型。限定作用域的枚举类型不指明存储类型即被认为存储类型为int。

  • 相关阅读:
    移动端1px问题
    js几种数组排序及sort的实现
    从零开始搭建vue移动端项目到上线
    Maven项目常见错误解决方法汇总
    重读《Java编程思想》
    ubuntu开发环境下eclipse的alt+/自动补全功能不能用
    Linux环境下解压rar文件
    Ubuntu 16.04下deb文件的安装
    优化Ubuntu 16.04系统的几件事
    Ubuntu16.04 安装 “宋体,微软雅黑,Consolas雅黑混合版编程字体” 等 Windows 7 下的字体
  • 原文地址:https://www.cnblogs.com/vsuu/p/4168034.html
Copyright © 2011-2022 走看看