C++ 枚舉(enum)

在本文中,您將學習使用枚舉(enum)。此外,您還將學習C ++編程中通常使用枚舉的地方。

枚舉是用戶定義的數(shù)據(jù)類型,由整數(shù)常量組成??梢允褂藐P鍵字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
};

枚舉類型聲明

創(chuàng)建枚舉類型時,只會創(chuàng)建該變量的藍圖。這是創(chuàng)建枚舉類型變量的方法。

enum boolean { false, true };

// 內(nèi)部函數(shù)
enum boolean check;

在這里,創(chuàng)建了enum boolean類型的變量check。

這是使用不同語法聲明相同check變量的另一種方法。

enum boolean 
{ 
   false, true
} check;

示例1:枚舉類型

#include <iostream>
using namespace std;

enum week { 周日,周一,周二,周三,周四,周五,周六 };

int main()
{
    week today;
    today = 周二;
    cout << "星期幾?" << today+1;
    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) << " bytes.";   
    return 0;
}

輸出結果

enum變量的大小 4 bytes.

這是因為整數(shù)的大小為4個字節(jié)。

這使得enum成為使用標志的一個很好的選擇。

您可以使用C ++結構完成相同的任務。但是,使用枚舉可以提高效率和靈活性。

如何將枚舉用于標志?

讓我們舉個實例,

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

假設您正在為Windows應用程序設計一個按鈕??梢栽O置標志 ITALICS,BOLD和UNDERLINE 來處理文本。

在上面的偽代碼中,所有的積分常數(shù)都是2的冪是有原因的。

// In binary

ITALICS = 00000001
BOLD = 00000010
UNDERLINE = 00000100

由于積分常數(shù)是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時,您始終知道會使用粗體(bold) 和 (underline) 下劃線。

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

if (myDesign & ITALICS) {
    // 斜體代碼
}

在這里,我們在設計中添加了斜體。注意,只有斜體代碼寫在if語句中。

您無需使用枚舉就可以在C ++編程中完成幾乎所有任務。但是,它們在某些情況下可能非常方便。這也或許是優(yōu)秀程序員與更優(yōu)秀程序員的不同之處。

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清