English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

枚举(enum)C++

In questo articolo, imparerai a utilizzare i tipi enumerati (enum). Inoltre, imparerai i luoghi di utilizzo degli enumerati nel programming C++.

Un tipo enumerato è un tipo dati definito dall'utente composto da costanti intere. È possibile utilizzare la parola chiaveenumdefinire l'enumerazione.

enum season { primavera, estate, autunno, inverno };

In questo caso, il nome dell'enumerazione è season.

E spring, estate e inverno sono valori di tipo season.

Di default spring è 0, estate è 1, ecc. È possibile modificare il valore predefinito degli elementi enumerati durante la dichiarazione (se necessario).

enum season 
{    inverno = 0, 
    estate = 4, 
    autunno = 8,
    inverno = 12
};

Dichiarazione del tipo enumerato

Quando si crea un tipo enumerato, viene creato solo il piano della variabile. Questo è il metodo per creare una variabile di tipo enumerato.

enum boolean { false, true };
// funzione interna
enum boolean check;

In questo caso, è stato creatoenum booleandi tipo boolean.

Questo è un altro metodo per dichiarare la variabile check utilizzando una sintassi diversa.

enum boolean 
{ 
   false, true
}; check;

Esempio 1: tipo enumerato

#include <iostream>
using namespace std;
enum week { domenica, lunedì, martedì, mercoledì, giovedì, venerdì, sabato };
int main()
{
    week today;
    today = martedì;
    cout << "giorno della settimana?" << today+1;
    return 0;
}

结果输出

Giorno della settimana?3

Esempio 2: Modifica del valore predefinito dell'enumerazione

#include <iostream>
using namespace std;
enum seasons { spring = 34, summer = 4, autumn = 9, winter = 32};
int main() {
    seasons s;
    s = summer;
    cout << "Summer = " << s << endl;
    return 0;
}

结果输出

Summer = 4

Perché utilizzare l'enumerazione nel programming C++?

Le variabili enum assumono un valore tra molti possibili. Ecco un esempio per illustrarlo:

#include <iostream>
using namespace std;
enum suit {
    club = 0,
    diamonds = 10,
    hearts = 20,
    spades = 3
} card;
int main() 
{
    card = club;
    cout << "La dimensione delle variabili enum è " << sizeof(card) << " byte.";   
    return 0;
}

结果输出

La dimensione delle variabili enum è 4 byte.

Questo è perché la dimensione degli interi è di 4 byte.

Questo rende l'enum una buona scelta per l'uso dei segni.

Puoi utilizzareStruttura C++Completa la stessa attività. Ma, utilizzare l'enumerazione può migliorare l'efficienza e la flessibilità.

Come utilizzare l'enumerazione per i segni?

Facciamo un esempio,

enum designFlags {
	ITALICS = 1,
	BOLD = 2,
	UNDERLINE = 4
} button;

Immaginiamo di essere a lavoro su un'applicazione Windows. Puoi impostare i segni ITALICS, BOLD e UNDERLINE per gestire il testo.

In questo pseudo-codice, tutti i costanti di integrazione sono potenze di 2 per un motivo.

// In binary
ITALICS = 00000001
BOLD = 00000010
UNDERLINE = 00000100

Poiché il costante di integrazione è una potenza di 2, è possibile combinare due o più segni contemporaneamente senza utilizzare l'operatore di OR bitwise | per sovrapporsi. Questo consente di selezionare contemporaneamente due o più segni. Ad esempio,

#include <iostream>
using namespace std;
enum designFlags {
    BOLD = 1,
    ITALICS = 2,
    UNDERLINE = 4
};
int main() 
{
    int myDesign = BOLD | UNDERLINE; 
        //  00000001
        //  | 00000100
        //  ___________
        //  00000101
    cout << myDesign;
    return 0;
}

结果输出

5

当输出为5时,您始终知道会使用粗体(bold) 和 (underline) 下划线。

另外,您可以在要求中添加标志。

if (myDesign & ITALICS) {
    // 斜体代码
}

在这里,我们在设计中添加了斜体。注意,只有斜体代码写在语句if中

在C ++编程中,您无需使用枚举就可以完成几乎所有任务。但是,在某些情况下,它们可能非常方便。这也或许是优秀程序员与更优秀程序员的不同之处。