在本文中,您将学习使用枚举(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 ++编程中完成几乎所有任务。但是,它们在某些情况下可能非常方便。这也或许是优秀程序员与更优秀程序员的不同之处。