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

C++ Tutoriel de base

C++ Contrôle du flux

C++ Fonction

C++ Tableau & Chaîne

C++ Structure de données

C++ Classe & Objet

C++ Pointeur

C++ Héritage

C++ STL Tutoriel

C++ Manuel de référence

C++ Énumération (enum)

Dans cet article, vous allez apprendre à utiliser les énumérations (enum). De plus, vous allez également apprendre C ++Lendroit où les énumérations sont généralement utilisées dans la programmation.

Les énumérations sont des types de données définis par l'utilisateur, composés de constantes entières. Vous pouvez utiliser les mots-clésenum,定义枚举。

enum season { spring, summer, autumn, winter };

Ici, le nom de l'énumération est season.

Et, spring, summer et winter sont des valeurs du type season.

Par défaut, spring vaut 0, summer vaut1,依此类推。Vous pouvez modifier la valeur par défaut de l'élément de l'énumération pendant la déclaration (si nécessaire).

enum season 
{   spring = 0, 
    summer = 4, 
    autumn = 8,
    winter = 12
};

Déclaration de type d'énumération

Lors de la création d'un type d'énumération, seule la blueprint de la variable est créée. C'est la méthode pour créer une variable de type d'énumération.

enum boolean { false, true };
// Fonction interne
enum boolean check;

Ici, on a crééenum booleanLa variable de type.

C'est une autre méthode pour déclarer la même variable check en utilisant une syntaxe différente.

enum boolean 
{ 
   false, true
}

示例1:枚举类型

#include <iostream>
using namespace std;
enum week { 星期日, 周一, 周二, 周三, 周四, 周五, 周六 };
int main()
{
    week today;
    today = 周二;
    cout << "星期几?" << today+1;
    return 0;
}

Résultat de la sortie

星期几?3

示例2:更改枚举的默认值

#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;
}

Résultat de la sortie

Summer = 4

为什么在C ++在编程中使用枚举?

枚举变量仅取许多可能值中的一个值。以下示例来演示它:

#include <iostream>
using namespace std;
enum suit {
    club = 0,
    diamonds = 10,
    hearts = 20,
    spades = 3
} card;
int main() 
{
    card = club;
    cout << "enum变量的大小 " << sizeof(card) << " bytes.";   
    return 0;
}

Résultat de la sortie

enum变量的大小 4 bytes.

这是因为整数的大小为4个字节。

这使得enum成为使用标志的一个很好的选择。

您可以使用C ++结构完成相同的任务。但是,使用枚举可以提高效率和灵活性。

如何将枚举用于标志?

让我们举一个例子,

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

假设您正在为Windows应用程序设计一个按钮。可以设置标志 ITALICS,BOLD和UNDERLINE来处理文本。

在上面的伪代码中,所有的积分常数都是2的幂是有原因的。

// 在二进制中
ITALICS = 00000001
BOLD = 00000010
UNDERLINE = 00000100

由于积分常数是2的幂,因此可以同时组合两个或多个标志,而无需使用按位或|操作符进行重叠。这允许您同时选择两个或多个标志。例如,

#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;
}

Résultat de la sortie

5

Lorsque la sortie est5lorsque vous savez toujours que vous utiliserez du gras (bold) et du soulignement (underline).

De plus, vous pouvez ajouter des indicateurs dans les exigences.

if (myDesign & ITALICS) {
    // code en italique
}

Ici, nous avons ajouté de l'italique dans la conception. Notez que ce sont uniquement les codes en italique qui sont écritsdans une instruction if.

Vous n'avez pas besoin d'utiliser des énumérations pour utiliser des valeurs entières dans C ++Dans la programmation, on termine presque toutes les tâches. Mais, elles peuvent être très utiles dans certains cas. Cela pourrait aussi être la différence entre un excellent programmeur et un programmeur encore meilleur.