C++枚举(enum)

        在本文中,您将学习使用枚举(enum)。此外,您还将学习C ++编程中通常使用枚举的地方。枚举是用户定义的数据类型,由整数常量组成。可以使用关键字enum,定义枚举。

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

        在这里,枚举的名称是season。而且,spring,summer,autumn和winter是season类型的值。默认情况下spring为0,summer为1,依此类推。您可以在声明期间更改枚举元素的默认值(如有必要的话)。

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

枚举类型声明

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

enum boolean { false, true };

// 内部函数
enum boolean check;

在这里,创建了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;
}

输出结果: 

示例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;
}

输出结果: 

为什么在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;
}

输出结果: 

        这是因为整数的大小为4个字节。这使得enum成为使用标志的一个很好的选择。您可以使用C ++结构完成相同的任务。但是,使用枚举可以提高效率和灵活性。

如何将枚举用于标志?

让我们举个实例,

示例

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

假设您正在为Windows应用程序设计一个按钮。可以设置标志 ITALICS,BOLD和UNDERLINE 来处理文本。在上面的伪代码中,所有的积分常数都是2的幂是有原因的。

在上面的伪代码中,所有的积分常数都是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时,您始终知道会使用粗体(bold) 和 (underline) 下划线。另外,您可以在要求中添加标志。

if (myDesign & ITALICS) {
    // 斜体代码
}

在这里,我们在设计中添加了斜体。注意,只有斜体代码写在if语句中

您无需使用枚举就可以在C ++编程中完成几乎所有任务。但是,它们在某些情况下可能非常方便。这也或许是优秀程序员与更优秀程序员的不同之处。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C++中的枚类型(enum)是一种用户定义的数据类型,它用于定义一组命名的整数常量。枚类型的语法如下: ```c++ enum类型名 { 枚值1, 枚值2, ... }; ``` 其中,枚值可以是任何整数常量,如果没有显式地为枚值指定值,则第一个枚值默认为0,后续枚值依次加1。例如: ```c++ enum Weekday { Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday }; ``` 上述代码定义了一个Weekday枚类型,其中Monday的值为0,Tuesday的值为1,以此类推。 可以通过以下方式定义枚值的值: ```c++ enum Weekday { Monday = 1, Tuesday = 2, Wednesday = 3, Thursday = 4, Friday = 5, Saturday = 6, Sunday = 7 }; ``` 上述代码定义了一个Weekday枚类型,与之前的定义不同的是,这里显式地为每个枚值指定了值。 枚类型可以用于定义变量、函数参数、函数返回值等,例如: ```c++ enum Weekday { Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday }; Weekday today = Monday; void printWeekday(Weekday day) { switch (day) { case Monday: cout << "Monday" << endl; break; case Tuesday: cout << "Tuesday" << endl; break; case Wednesday: cout << "Wednesday" << endl; break; case Thursday: cout << "Thursday" << endl; break; case Friday: cout << "Friday" << endl; break; case Saturday: cout << "Saturday" << endl; break; case Sunday: cout << "Sunday" << endl; break; } } Weekday getNextDay(Weekday day) { return static_cast<Weekday>((day + 1) % 7); } ``` 上述代码定义了一个Weekday枚类型以及一些与之相关的变量和函数。注意,在printWeekday函数中,我们使用了switch语句来根据传入的Weekday枚值进行不同的操作。在getNextDay函数中,我们使用了static_cast将整数常量转换为Weekday类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值