-1

这个问题快把我逼疯了。我需要把它做对,这样我才能通过我的课程。感谢所有尝试它的人。

用 C++ 编写一个简单的程序来调查其枚举类型的安全性。在枚举类型上至少包含 10 种不同的操作,以确定哪些不正确或愚蠢的事情是合法的。

4

1 回答 1

-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| 等。这是一种常用的技术,有关其他参考资料,请参阅如何在 C++ 中使用枚举作为标志?.

有关按位运算的参考,请查看C 和 C++ 中的位运算符:教程

使用 C++ 11,您可以通过其他方式使用枚举,例如强类型枚举

于 2012-04-07T03:24:51.190 回答