c_cpp 两种枚举

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 两种枚举相关的知识,希望对你有一定的参考价值。

//
// Created by wangzhigang on 2019/4/18.
//

#ifndef BUPT_ENUM_H
#define BUPT_ENUM_H

//作用域枚举
enum class Month {
    jan = 1, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec
};

//平坦枚举
enum month {
    jan = 1, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec
};



/*
    作用域枚举安全,但是比较麻烦,不包含隐式转换.
    Month m = Month::jan;
    cout << (int) m << endl;
    int n=m 错误

    平坦枚举的访问方式包含有隐式转换,可以直接将枚举量赋值给 int 型变量.
    cout << month(2) << endl;
    int n=month(2) 正确

    平坦枚举支持作用域枚举的访问方式,反之不然.
*/

#endif //BUPT_ENUM_H

以上是关于c_cpp 两种枚举的主要内容,如果未能解决你的问题,请参考以下文章

c_cpp bcb枚举文件

c_cpp 容易枚举到字符串

c_cpp 使用命名的枚举作为字节

c_cpp C ++ 11内省的“枚举”

c_cpp 在C中使用枚举

c_cpp 在C ++中使用内部枚举和联合的状态对象的例子