如何在班级学生的enum中添加和删除值

时间:2012-11-06 07:12:41

标签: c++ enums

如何在c ++中添加,删除enum中的值?
例:         如果我有班级学生:

 class Student {
string Name;
string fathername;
string sername;
unsigned int    id-std;
unsigned int    old;

int faculty = 0;
 enum { prog , econ , sport };

  add fac(  );

  delete fac (  );

4 个答案:

答案 0 :(得分:4)

C ++中的

enum是一组命名的整数常量,它在编译时进行评估,你无法在它们中添加或删除它们这一点。

答案 1 :(得分:3)

如果您尝试使用位掩码,则每个枚举值必须是2的幂,并且在枚举中是唯一的:

enum MyEnum { prog = 1, econ = 2, sport = 4 };

要同时选择progecon,请键入:

MyEnum v = prog | econ;

要稍后删除标记prog,请键入:

v = v & ~prog;

您可以在the page for bitmasks on Wikipedia找到更多信息。

答案 2 :(得分:1)

枚举不可能。

一种方式可以是地图:

std::map<std::string, int> theFaculties;
theFaculties["prog"] = 1;
theFaculties["econ"] = 2;
...

int faculty = theFaculties["prog"];

您可以添加/删除,但由于创建了不存在的密钥,您必须处理运算符[]。

答案 3 :(得分:0)

枚举是一种用户定义的类型,由一组名为常量的枚举器组成。使用枚举的替代方法是使用#defineconst。因此,您无法从枚举中删除或添加值。