这个问题让我抓狂。我需要做对,所以我可以通过我的课程。感谢所有尝试的人。
用C ++编写一个简单的程序来研究其枚举类型的安全性。在枚举类型上包含至少10个不同的操作,以确定哪些不正确或只是愚蠢的事情是合法的。
答案 0 :(得分:-1)
这是一个完全可操作的程序,它使用枚举显示十种不同类型的操作。详细信息将在代码中,引用将位于帖子的底部。
首先,了解枚举是非常重要的。有关此参考,请查看Enumerated Types - enums。在下面的代码中,我使用数学运算,按位运算符并使用枚举值将数组初始化为默认大小。
#include <iostream>
using namespace std;
enum EnumBits
{
ONE = 1,
TWO = 2,
FOUR = 4,
EIGHT = 8
};
enum Randoms
{
BIG_COUNT = 20,
INTCOUNT = 3
};
int main(void)
{
// Basic Mathimatical operations
cout << (ONE + TWO) << endl; // Value will be 3.
cout << (FOUR - TWO) << endl; // Value will be 2.
cout << (TWO * EIGHT) << endl; // Value will be 16.
cout << (EIGHT / TWO) << endl; // Value will be 4.
// Some bitwise operations
cout << (ONE | TWO) << endl; // Value will be 3.
cout << (TWO & FOUR) << endl; // Value will be 0.
cout << (TWO ^ EIGHT) << endl; // Value will be 10.
cout << (EIGHT << 1) << endl; // Value will be 16.
cout << (EIGHT >> 1) << endl; // Value will be 4.
// Initialize an array based upon an enum value
int intArray[INTCOUNT];
// Have a value initialized be initialized to a static value plus
// a value to be determined by an enum value.
int someVal = 5 + BIG_COUNT;
return 0;
}
上面完成的代码示例可以用另一种方式完成,这是你为EnumBits重载operator等的地方。这是一种常用技术,有关其他参考资料,请参阅How to use enums as flags in C++?。
有关按位运算的参考,请查看Bitwise Operators in C and C++: A Tutorial
使用C ++ 11,您可以通过其他方式使用枚举,例如strongly typed enums。