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

    枚举类型可以简化代码并且避免一些不必要的错误

    #include<iostream>
    
    int A=0;
    int B=1;
    int C=2;
    
    int main()
    {
        int value=B;
        if(value==B)
        {
            //Do something
        }
        std::cin.get();
    }

    ABC都是全局变量,所以我们可以在全局中对ABC三个数进行修改,如果我们想要用value等于某种类型比如ABC,那么就容易出错,此时枚举类型会更好

    #include<iostream>
    
    enum Example
    {
        A,B,C
    };
    
    int a=0;
    int b=1;
    int c=2;
    
    int main()
    {
        Example value=B;
        if(value==B)
        {
            //Do something
        }
        std::cin.get();
    }

    此时如果我们令Example value=5程序就会出错,判断条件value==B也可以改为具体的值如value==1,应为B实际表示的值就是1,枚举类型默认是从0开始顺序对应。

     也可以这样修改

    enum Example
    {
        A=0,B=2,C=7;
    };

    如果只修改一个值,那么后面的值会按照顺序改变

    #include<iostream>
    
    class Log
    {
    public:
        enum Level
        {
            LevelError=0,LevelWarning,LevelInfo
        };
    
    private:
        Level m_LogLevel=LevelInfo;//m means this member is private
                                                    //m_logLevel=LogLevelInfo, print everything
    public:
        void setLevel(Level level)
        {
            m_LogLevel=level;
        }
        void Error(const char* message)
        {
            if(m_LogLevel>=LevelError)
                std::cout<<"[Error]"<<message<<std::endl;
        }
    
        void Warn(const char* message)
        {
            if(m_LogLevel>=LevelWarning
                std::cout<<"[WARNING]"<<message<<std::endl;
        }
        void Info(const char* message)
        {
            if(m_LogLevel>=LevelInfo
                std::cout<<"[Info]"<<message<<std::endl;
        }
    };
    
    int main()
    {
        Log log;
        log.setLevel(Log::LevelWarning);//根据设置的LogLevel来实现不同的输出
        log.Error("Hello");
        log.Warn("Hello");
        log.Info("Hello");
        std::cin.get();
    }
  • 相关阅读:
    js加载优化三
    js加载优化-二
    js加载优化
    怎样获取元素的高度
    HttpClient
    Android Http请求方法汇总
    table列等宽
    单页面手机开发
    单页面
    【154】C#打包程序成安装包
  • 原文地址:https://www.cnblogs.com/wangtianning1223/p/12673444.html
Copyright © 2011-2022 走看看