zoukankan      html  css  js  c++  java
  • C++枚举类型Enum及C++11强枚举类型用法

      C++中的枚举类型常常和switch配合使用,这里用一个简单的switch控制键盘回调的代码片段来说明枚举的用法:

        //W A S D 前、后、左、右行走
        enum Keydown{ Forward='w', Back='s', Left='a', Right='d'
        }key;
    
        while (true){
            if (_kbhit()){//接受键盘回调
                key = Keydown(_getch());
                switch (key){case ('w') ://按w 往前走
                {
                    Move(0.f, 0.f, -0.1f);
                    break;
                }
                case ('a') ://按a 朝左走
                {
                    Move(-0.1f, 0.f, 0.f);
                    break;
                }
                case('s') ://按s 往后走
                {
                    Move(0.f, 0.f, 0.1f);
                    break;
                }
                case('d') ://按d 朝右走
                {
                    Move(0.1f, 0.f, 0.f);
                    break;
                }default:
                    continue;
                }
            }
        }

      在C++11之前的弱枚举类型,若是同一作用域下有两个不同的枚举类型,但含有相同的枚举常量会产生二义性,比如:

    enum EnumType1{Yang,Li};
    enum EnumType2{Li,Zhang};

      这样是不正确的。

      C++11中新添加的强枚举类型用class关键字来声明,如:

    enum class Enumeration{
        E1=10
        E2=20
        E3,
        E4,
    };

      强类型枚举之所以能解决在不同枚举类下同枚举值名的问题,是因为在使用强枚举类型的枚举名时,必须指明所属范围,比如:Enum::E1,而单独的E1则不再具有意义。

  • 相关阅读:
    【Android
    【Android
    GeoIP的使用
    从30岁到35岁:为你的生命多积累一些厚度[转]
    editplus运行php 配置
    zend studio10 创建重复project from remote server
    《淘宝技术这10年》
    顶级程序员的10条最佳实践
    PHP_EOL 换行符
    尝试用Gearman实现分布式处理(PHP)[转]
  • 原文地址:https://www.cnblogs.com/zeppelin5/p/10078516.html
Copyright © 2011-2022 走看看