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/n/144202.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
GOYJGOYJ
上一篇 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

发表回复

登录后才能评论