1.说明

enum是一个基本的关键字,却一直没弄清楚怎么用,这次在实现二叉树框架时需要用到常量,特地搜了一下,终于知道怎么用了.

2.enum使用要点

  • enum声明是一个类型,不是变量.
  • enum经常用来表示常量
  • 不同的enum类型不能互相赋值,除非进行强制类型转换,如果转换后的值不在目的enum类型的枚举范围内,相当于目的enum类型的值退化到整数类型。

    int main()
    {
    enum w1{a1=0,a2,a3};
    enum w2{b1=2,b2,b3}; w1 a=a1;
    w2 b=b1; a=(w1)b;
    }

    上面这个代码执行完成之后a=a3;

    int main()
    {
    enum w1{a1=0,a2,a3};
    enum w2{b1=4,b2,b3}; w1 a=a1;
    w2 b=b1; a=(w1)b;
    }

    上面这段代码执行完成之后a=4;

  • 不能直接将整数赋给enum类型的变量,除非进行强制类型转换
  • 枚举变量的的输出一般用switch来完成,使用过程中也经常用switch,比如我在写二叉树的遍历时就可以这么写:

    //在头文件中定义有 enum TRAVERSAL_ORDER{PREORDER,INORDER,POSTORDER}
    
    void showBTree(BTNode *root,TRAVERSAL_ORDER order=INORDER)
    {
    if(root==NULL)cout<<"The tree is empty!!"; switch(order)
    {
    case INORDER:
    cout<<"中序遍历:";inorderTraversal(root);break;
    case PREORDER:
    cout<<"先序遍历:";preorderTraversal(root);break;
    case POSTORDER:
    cout<<"后序遍历:";postorderTraversal(root);break;
    default:break;
    }; cout<<endl;
    }

enum 使用的更多相关文章

  1. Swift enum(枚举)使用范例

    //: Playground - noun: a place where people can play import UIKit var str = "Hello, playground& ...

  2. 枚举:enum

    枚举 所谓枚举就是指定好取值范围,所有内容只能从指定范围取得. 例如,想定义一个color类,他只能有RED,GREEN,BLUE三种植. 使用简单类完成颜色固定取值问题. 1,就是说,一个类只能完成 ...

  3. Asp.Net 将枚举类型(enum)绑定到ListControl(DropDownList)控件

    在开发过程中一些状态的表示使用到枚举类型,那么如何将枚举类型直接绑定到ListControl(DropDownList)是本次的主题,废话不多说了,直接代码: 首先看工具类代码: /// <su ...

  4. 用枚举enum替代int常量

    枚举的好处: 1. 类型安全性 2.使用方便性 public class EnumDemo { enum Color{ RED(3),BLUE(5),BLACK(8),YELLOW(13),GREEN ...

  5. The Java Enum: A Singleton Pattern [reproduced]

    The singleton pattern restricts the instantiation of a class to one object. In Java, to enforce this ...

  6. c# (ENUM)枚举组合类型的谷歌序列化Protobuf

    c# (ENUM)枚举组合类型的谷歌序列化Protobuf,必须在序列化/反序列化时加上下面: RuntimeTypeModel.Default[typeof(Alarm)].EnumPassthru ...

  7. (转)C# Enum,Int,String的互相转换 枚举转换

    Enum为枚举提供基类,其基础类型可以是除 Char 外的任何整型.如果没有显式声明基础类型,则使用 Int32.编程语言通常提供语法来声明由一组已命名的常数和它们的值组成的枚举. 注意:枚举类型的基 ...

  8. set和enum类型的用法和区别

    mysql中的set和enum类型的用法和区别 mysql中的enum和set其实都是string类型的而且只能在指定的集合里取值, 不同的是set可以取多个值,enum只能取一个值.   1 2 3 ...

  9. java enum

    小谈Java Enum的多态性 博客分类: Java JavaAppleJDKJVMIDEA  Enum+多态,我没说错,不过Enum是不可以被继承的,也不可以继承自别人,只是能实现接口而已,何谈多态 ...

  10. enum 与 enum class

    c++11中引入了新的枚举类型---->强制枚举类型 // unscoped enum: enum [identifier] [: type] {enum-list};  // scoped e ...

随机推荐

  1. PHP 练习租房

    练习:租房子 <body> <form action="test.php" method="post"> <div>区域: ...

  2. .Net MVC视图

    1.View显示 return View(): 默认为/Views/<控制器>/<方法> return View("Test"); 显示/View/< ...

  3. sql语句中能有中文 空格

    EXEC dbo.usp_execute_sql_Prod 'SELECT * FROM dbo.QuanVerify_Log where ticketcode = ''3783665132'' ' ...

  4. R语言数据类型转换

    test for data type is.numeric(), is.character(), is.vector(), is.matrix(), is.data.frame() convert i ...

  5. 初步窥探Git

    码农之路恒久远,学习向上是真谛啊!在学习的过程中,相信大家或多或少都接触到Git这个东东.它到底是什么呢,有什么作用呢,为什么它会那么火呢?带着这些一连串的疑问,决心去揭开它的庐山真面目. 在软件开发 ...

  6. 使用.9.png报错 Exception raised during rendering

    Exception raised during rendering: Index: 2, Size: 2Exception details are logged in Window > Show ...

  7. Innodb物理存储结构系列2 行记录格式

    前一篇讨论了Innodb system,表空间,文件的关系及数据结构,这一篇记录下Innodb行记录的格式. 前提: 1. server层和innodb层都有自己对于record的记录格式,需要进行转 ...

  8. 内存分配(c/c++)

    C++中内存分配          内存分成5个区,他们分别是堆.栈.自由存储区.全局/静态存储区和常量存储区. 1,栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区.里面的 ...

  9. UVa 10048 Audiophobia【Floyd】

    题意:给出一个c个点,s条边组成的无向图,求一点到另一点的路径上最大权值最小的路径,输出这个值 可以将这个 d[i][j]=min(d[i][j],d[i][k]+d[k][j]) 改成 d[i][j ...

  10. iPad中控制器view的width和height

    一.iPad中控制器view的width和height 1> 规律 * width 是宽高中最小的那个值 * height 是宽高中最大的那个值 2> 举例(比如窗口根控制器的view,有 ...