zoukankan      html  css  js  c++  java
  • enum 随笔

    工作中的代码常看到在一个类里面定义一个 enum , 而只用这个 enum,  也许没有把它放到类中的必要, 但是不放到类中, 每一个枚举量在namespace就是直接可见的, 也不太好

    写了个测试小程序

    注意到,  enum和int是一个size,  4 bytes.   enum中的枚举量(常量), 在它所在的namespace中直接可见,   class也是定义了一个namespace

    20,21行两种转换方式, 不转换是编译不过的

    22,23 两种定义枚举变量的方式

      1 #include <iostream>
    2 using namespace std;
    3
    4 enum Type {
    5 A = 0,
    6 B ,
    7 C = 6
    8 };
    9
    10 class WY {
    11 public: // private by default
    12 enum Love {
    13 SOCCER,
    14 GIRL = 5,
    15 CODING = 9
    16 };
    17 }; // ; needed after class definition
    18
    19 int main (){
    20 cout<<"the size of enum Type:" << sizeof(Type) << endl
    21 <<"the size of int:" << sizeof(int) << endl;
    22 Type type = static_cast<Type>(5);
    23 enum Type type2 = Type(7); //两种定义方式, 下面这种好
    24 // cout << "Type::A = " << Type::A <<endl; //error, Type is not a class or a namespace
    25 cout << "A = " << A << endl;
    26 cout << "B = " << B << endl;
    27 cout << "C = " << C << endl;
    28 cout << "type = " << type << endl;
    29 cout << "type2 = " << type2 << endl;
    30 // A++; //error
    31 // type++; //error
    32
    33 int t = C * 2;
    34 cout << "t = " << t << endl;
    35
    36 t = WY::GIRL;
    37 cout << "again t = " << t <<endl;
    38 return 0;
    39 }

    编译结果

    the size of enum Type:4
    the size of int:4
    A = 0
    B = 1
    C = 6
    type = 5
    type2 = 7
    t = 12
    again t = 5



  • 相关阅读:
    Input 银行卡验证
    记一次坑爹的加解密问题
    C# Html Agility Pack
    记一次坑爹的 “跨域” 问题
    FindControl的使用方法
    C#如何使用异步编程
    ReportViewer中设置ServerReport.ReportServerCredentials属性的方法
    C#中常用接口介绍
    谈谈C#中的接口
    DataTable与Linq相互转换
  • 原文地址:https://www.cnblogs.com/livingintruth/p/2354951.html
Copyright © 2011-2022 走看看