c++枚舉類型enum的詳解

一、enum用法

1、enum關鍵字可以用於定義一組命名值,枚舉類型可以包含常量或函數。

2、枚舉類型是一種用戶自定義類型,可以像具體的整數類型一樣使用。

3、在不指定枚舉常量值的情況下,第一個枚舉成員的初始值為0,後續枚舉成員的初始值默認為前一個成員的值+1。

#include <iostream>
using namespace std;

enum Weekdays {
    Monday,
    Tuesday,
    Wednesday,
    Thursday,
    Friday,
    Saturday,
    Sunday
};

int main() {
    Weekdays today = Wednesday;
    cout << "今天是星期" << today+1 << endl; //注意:於 enum 定義中從零開始算,所以 +1
    return 0;
}

// 今天是星期3

二、mysql enum用法

1、MySQL中的ENUM是一種數據類型,它允許我們在一個集合中定義一個值列表。

2、enum類型可以存儲逗號分隔的字符串列表或數值列表。

3、使用ENUM類型可以限制列的取值範圍。

CREATE TABLE fruits (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name ENUM('apple','banana','orange'),
    price FLOAT
);

三、c枚舉類型enum用法

1、與C++一樣,C枚舉類型enum的目的是為了提高代碼的可讀性和可維護性。

2、在C語言中,枚舉類型enum的定義如下:

enum 枚舉名 {
    標識符[=整型常數],
    標識符[=整型常數],
    ……,
    標識符[=整型常數]
} 枚舉變量;

3、注意,C語言中枚舉類型是沒有作用域概念的。

四、enum用法mysql

1、MySQL中的ENUM類型通過枚舉字符串值來表示。當我們使用ENUM類型時,MySQL會驗證傳遞給列的值是否在該列的規定值列表中。如果不是,MySQL將拒絕將該值存儲在該列中。

/* 創建表 */
CREATE TABLE products (
  id   INT(11) NOT NULL AUTO_INCREMENT,
  name VARCHAR(255),
  type ENUM('fruit', 'vegetable', 'meat'),
  PRIMARY KEY (id)
);

/* 插入數據 */
INSERT INTO products (name, type)
VALUES('apple', 'fruit'), ('onion', 'vegetable'), ('beef', 'meat');

/* 查詢數據 */
SELECT * FROM products;

/* 結果 */
id  name    type
1   apple   fruit
2   onion   vegetable
3   beef    meat

五、typedef enum用法

1、typedef enum用法可以將枚舉定義成一種新類型,並且可以對該類型變量進行定義。

#include <iostream>
using namespace std;

typedef enum Weekdays {  
    Monday,
    Tuesday,
    Wednesday,  
    Thursday,  
    Friday,  
    Saturday,  
    Sunday  
} Weekdays; 

int main() {
    Weekdays today = Wednesday;
    cout << "今天是星期" << today+1 << endl; //注意:於 enum 定義中從零開始算,所以 +1
    return 0;
}

// 今天是星期3

六、c語言enum用法

1、C語言中枚舉類型enum可以賦予地位高於0的值,而且可以定義一個常量數組。這是C語言與C++的差異之一。

#include <iostream>
using namespace std;

enum greek { alpha=1, beta=2, gamma=3 };
greek A;

int main() {
    A = beta;
    cout << "beta = " << A << endl;

    greek B;
    B = gamma;
    cout << "gamma = " << B << endl;
    return 0;
}

// beta = 2
// gamma = 3

七、enum class用法

1、C++11引入的枚舉類enum class用法可以將枚舉常量放置在特定的命名空間中。

2、枚舉類enum class避免了枚舉類型的潛在名稱衝突和陳舊的約定(例如,兩個枚舉類型可能具有相同的名稱,但具有不同的值)。

#include <iostream>
using namespace std;

enum class Days {
    Monday,
    Tuesday,
    Wednesday,
    Thursday,
    Friday,
    Saturday,
    Sunday
};

int main() {
    Days today = Days::Wednesday;
    switch(today) {
        case Days::Monday:
            cout << "星期一" << endl;
            break;
        case Days::Tuesday:
            cout << "星期二" << endl;
            break;
        case Days::Wednesday:
            cout << "星期三" << endl;
            break;
        case Days::Thursday:
            cout << "星期四" << endl;
            break;
        case Days::Friday:
            cout << "星期五" << endl;
            break;
        case Days::Saturday:
            cout << "星期六" << endl;
            break;
        case Days::Sunday:
            cout << "星期日" << endl;
            break;
    }
    return 0;
}

// 星期三

八、數據庫enum用法

1、數據庫中經常用到ENUM類型,因為它可以限制列的取值範圍。

2、在數據庫中,ENUM表示的是字符串而不是數字。

3、MySQL中的ENUM是一種數據類型,它允許我們在一個集合中定義一個值列表。

/* 創建表 */
CREATE TABLE attention (
id INT(11) NOT NULL AUTO_INCREMENT,
type ENUM('like', 'comment', 'follow'),
PRIMARY KEY (id)
);

/* 插入數據 */
INSERT INTO attention (type)
VALUES('like'), ('follow');

/* 查詢數據 */
SELECT * FROM attention;

/* 結果 */
id  name    type
1   like    like
2   follow  follow

九、c++中enum的用法

1、C++中enum的用法可以用於枚舉值的定義,這些值可以用作數組的索引、陳述語句和其他場合。

2、C++枚舉類型是一種用戶自定義類型,可以像具體的整數類型一樣使用。

3、可以為C++枚舉類型的枚舉常量指定初始值。

#include <iostream>
using namespace std;

enum color {red, green, blue};
 
int main() {
   color c;
   c = blue;
   cout << c << endl; // 輸出 2
   return 0;
}

十、public enum 類的用法

1、public enum類的用法可以將枚舉類型聲明為另一個類的公共成員,這樣就可以像其他公共成員一樣進行訪問了。

2、在C++中,可以通過在類的定義中聲明公共枚舉類型來定義枚舉。

#include <iostream>
using namespace std;

class MyClass {
  public:
	enum Color {RED, GREEN, BLUE};
    Color color;

    void setColor(Color c) {
        color = c;
    }

    Color getColor() {
        return color;
    }
};

int main() {
    MyClass obj;
    obj.setColor(MyClass::RED);
    cout << obj.getColor() << endl; // 輸出 0
    obj.setColor(MyClass::GREEN);
    cout << obj.getColor() << endl; // 輸出 1
    obj.setColor(MyClass::BLUE);
    cout << obj.getColor() << endl; // 輸出 2
}

結束語

通過以上的介紹,我們可以發現C++枚舉類型enum在編程中的用法是非常廣泛和靈活的。它可以用於限制變量的取值範圍,提高代碼可讀性和可維護性,以及方便的讓我們使用字符串或數字來表示一組命名值,增加代碼重用性和可擴展性。同時,了解枚舉類型的MYSQL、C語言以及其他的一些實現方式可以更好地提高我們在對應領域的應用能力。

原創文章,作者:GOYJ,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/144202.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
GOYJ的頭像GOYJ
上一篇 2024-10-24 15:28
下一篇 2024-10-24 15:28

相關推薦

  • int類型變量的細節與注意事項

    本文將從 int 類型變量的定義、聲明、初始化、範圍、運算和類型轉換等方面,對 int 類型變量進行詳細闡述和講解,幫助讀者更好地掌握和應用 int 變量。 一、定義與聲明 int…

    編程 2025-04-29
  • Python3定義函數參數類型

    Python是一門動態類型語言,不需要在定義變量時顯示的指定變量類型,但是Python3中提供了函數參數類型的聲明功能,在函數定義時明確定義參數類型。在函數的形參後面加上冒號(:)…

    編程 2025-04-29
  • Python基本數字類型

    本文將介紹Python中基本數字類型,包括整型、布爾型、浮點型、複數型,並提供相應的代碼示例以便讀者更好的理解。 一、整型 整型即整數類型,Python中的整型沒有大小限制,所以可…

    編程 2025-04-29
  • c# enum轉換成string

    本文將從以下幾個方面詳細闡述c#中enum類型轉換成string類型的方法及注意事項。 一、基本語法和示例 c#中的enum類型可以看作是一組有名字的常量值,通常用於定義一組相關的…

    編程 2025-04-29
  • Python中的Bool類型判斷

    本篇文章旨在講解Python中的Bool類型判斷。在Python中,Bool類型是經常使用的一種類型,因此掌握其用法非常重要。 一、True和False 在Python中,True…

    編程 2025-04-29
  • Python函數類型有哪些

    本文將從以下幾個方面詳細闡述Python函數類型。 一、內置函數 Python的內置函數是指在Python編程語言中提供的可以直接使用的函數,不需要通過導入模塊等方式引入。 部分常…

    編程 2025-04-29
  • Python變量類型用法介紹

    Python是一種解釋型編程語言,它提供了豐富的數據類型,包括數字、字符串、列表、元組、集合、字典等。Python變量類型的定義是Python程序開發的基礎,本文將從以下幾個方面對…

    編程 2025-04-28
  • Python中的整數類型int類總覽

    本文將從多個方面,對Python中的整數類型int類進行全面介紹和闡述。 一、數據類型及基本操作 在Python中,整數類型的數據類型為int。在Python3.x中,整數類型的范…

    編程 2025-04-28
  • Python查詢變量類型的函數

    本文將從多個方面詳細闡述Python中查詢變量類型的函數,主要包括以下幾點: 一、type()函數 type()函數是Python內置的函數,用於查詢變量的類型。它的使用非常簡單,…

    編程 2025-04-28
  • Python語言列表中的元素類型可以不相同

    Python語言的列表是一種有序的集合,可以包含任意數量和任意類型的Python對象,包括數字、字符串甚至是其他列表對象,這樣的特性稱為Python語言列表中的元素類型可以不相同。…

    編程 2025-04-28

發表回復

登錄後才能評論