Clase Enum y Euma

1.Enum

 Enum Day{
    
    Mon=1,Tus,Wen,Thu,Fri,Sat,Sun};//Day 枚举名(域名)
 Enum Day day;//Day的对象名
 day=mon;//day=1;
 ++day;//1+1
 cout<<day<<endl;//cout 2

//

Enum Day{
    
    Mon=6,Tus,Wen,Thu,Fri,Sat,Sun} day;//定义对象名
day=Tus;//7
++day;//8
cout<<day;//8

Enum es esencialmente un tipo entero, un ámbito, común a c y c ++

2.Clase Enum

1. ¿En qué circunstancias se utilizan las clases de enumeración?

A veces los objetos de una clase son limitados y fijos. En este caso, es más conveniente para nosotros usar clases de enumeración

2. ¿Por qué no utilizar constantes estáticas en lugar de clases de enumeración?

static int SEASON_SPRING = 1;
static int SEASON_SUMMER = 2;
static int SEASON_FALL = 3;
static int SEASON_WINTER = 4;

Las clases de enumeración son más intuitivas y seguras para los tipos . El uso de constantes tiene las siguientes desventajas:

1. El tipo no es seguro . Si se requiere pasar el parámetro de temporada en un método, si se usa una constante, el parámetro formal es de tipo int. Los desarrolladores pueden pasar cualquier tipo de valor de tipo int, pero si es un tipo de enumeración, solo puede pasar a la clase de enumeración Objetos incluidos.

2. No hay espacio de nombres . Los desarrolladores deben comenzar con SEASON_ al nombrarlos, de modo que cuando otro desarrollador mire este código, sepa que estas cuatro constantes representan las estaciones.

3. Enum Class y union

Union se utiliza para hacer coincidir el tipo de enumeración correspondiente en la estructura.

enum Type{
    
    str,num};

union Value{
    
    
char* s;
int i;
}

struct Entry{
    
    
char* name;
Type t;
Value v;
};

void f(Entry *p)
{
    
    
if(p->t==str)
{
    
    cout<<p->v.s;}
}

Parte de la descripción del enlace se ha añadido desde el blog de comer pescado oveja . Aunque es Java, también es muy adecuado para C ++.

Supongo que te gusta

Origin blog.csdn.net/guanxunmeng8928/article/details/108396811
Recomendado
Clasificación