📅  最后修改于: 2020-09-25 04:51:25             🧑  作者: Mango
枚举是用户定义的数据类型,由整数常量组成。要定义枚举,使用关键字enum 。
enum season { spring, summer, autumn, winter };
在这里,枚举的名称是season
。
并且, spring
, summer
和winter
是type season
值。
默认情况下, spring
为0, summer
为1,依此类推。您可以在声明期间更改枚举元素的默认值(如有必要)。
enum season
{ spring = 0,
summer = 4,
autumn = 8,
winter = 12
};
创建枚举类型时,仅创建变量的蓝图。这是创建枚举类型变量的方法。
enum boolean { false, true };
// inside function
enum boolean check;
在这里,创建了enum boolean
类型的变量check
。
这是使用不同语法声明相同check
变量的另一种方法。
enum boolean
{
false, true
} check;
#include
using namespace std;
enum week { Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday };
int main()
{
week today;
today = Wednesday;
cout << "Day " << today+1;
return 0;
}
输出
Day 4
#include
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
枚举变量仅取许多可能值中的一个值。示例来演示它,
#include
using namespace std;
enum suit {
club = 0,
diamonds = 10,
hearts = 20,
spades = 3
} card;
int main()
{
card = club;
cout << "Size of enum variable " << sizeof(card) << " bytes.";
return 0;
}
输出
Size of enum variable 4 bytes.
这是因为整数的大小为4个字节。
这使枚举成为使用标志的好选择。
您可以使用C++结构完成相同的任务。但是,使用枚举可以提高效率和灵活性。
让我们举个例子
enum designFlags {
假设您正在设计Windows应用程序的按钮。您可以设置标志ITALICS
, BOLD
和UNDERLINE
来处理文本。
上面的伪代码中所有积分常数都是2的幂是有原因的。
// In binary
ITALICS = 00000001
BOLD = 00000010
UNDERLINE = 00000100
由于积分常数是2的幂,因此您可以一次组合两个或多个标志而不会使用按位OR |重叠。 运算符。这使您可以一次选择两个或多个标志。例如,
#include
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) {
// code for italics
}
在这里,我们在设计中添加了斜体。注意,只有斜体代码写在if语句中。
您可以在C++编程中几乎完成任何事情而无需使用枚举。但是,它们在某些情况下可能非常方便。那就是优秀程序员与优秀程序员的不同之处。