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

دليل الأساسيات C++

C++ 流程控制

الوظائف في C++

C++ 数组 & 字符串

C++ 数据结构

C++ 类 & 对象

الـ

الوراثة في C++

دليل STL C++

C++ 参考手册

الـ

在本文中,您将学习使用枚举(enum)。此外,您还将学习C ++编程中通常使用枚举的地方。

枚举是用户定义的数据类型,由整数常量组成。可以使用关键字enum,定义枚举。

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

在这里,枚举的名称是season。

而且,spring,summer和winter是season类型的值。

默认情况下spring为0,summer为1,依此类推。您可以在声明期间更改枚举元素的默认值(如有必要的话)。

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

枚举类型声明

创建枚举类型时,只会创建该变量的蓝图。这是创建枚举类型变量的方法。

enum boolean { false, true };
// 内部函数
enum boolean check;

 
{ 
   

#include <iostream>
using namespace std;
enum week { \
int main()
{
    week today;
    today = \
    cout << \
    return 0;
}

نتيجة الخروج

يوم من الأسبوع؟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;
}

نتيجة الخروج

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) << " بايت.";   
    return 0;
}

نتيجة الخروج

حجم متغير enum 4 بايت.

بسبب أن حجم العدد الصحيح هو 4 بايت.

هذا يجعل enum خيارًا جيدًا لاستخدام العلامات.

يمكنك استخدامهيكل C++لإكمال نفس المهمة. ولكن، يمكن أن تزيد الاستخدامات المحددة من الكفاءة وال灵活性.

كيف يمكن استخدام الجرد لتحديد العلامات؟

لنأخذ مثالاً على ذلك،

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

افترض أنك تقوم بتصميم أزرار تطبيق ويندوز. يمكنك تعيين علامات ITALICS، BOLD وUNDERLINE لمعالجة النص.

لديه سبب لكون جميع معلمات التكامل في الكود المزيف أعلاه هي قوى من 2.

// In binary
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;
}

نتيجة الخروج

5

عندما يكون الخروج 5، تعرف دائمًا أن سيتم استخدام النص粗يًا وخطًا أسفل.

إضافة إلى ذلك، يمكنك إضافة علامات في الطلب.

if (myDesign & ITALICS) {
    // نص مائل الكود
}

في هذا الموضع، قمنا بإضافة النص المائل. لاحظ أن فقط النص المائل الكود مكتوبفي جملة if.

لا تحتاج إلى استخدام الـ