0

如何在 C++ 中从枚举中添加、删除值?
示例:如果我有班级学生:

 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

4 回答 4

4

enum在 C++ 中是一组命名的整数常量,它在编译时被评估,你不能像那样添加或删除它们的值。

于 2012-11-06T07:14:52.903 回答
3

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

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

要同时选择progecon,请键入:

MyEnum v = prog | econ;

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

v = v & ~prog;

您可以在 Wikipedia 上的位掩码页面上找到更多信息。

于 2012-11-06T07:19:40.653 回答
1

这对于枚举是不可能的。

一种方式可能是地图:

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

int faculty = theFaculties["prog"];

您可以添加/删除,但您必须照顾 operator[] 因为创建不存在的密钥。

于 2012-11-06T07:18:27.217 回答
0

枚举是一种用户定义的类型,由一组称为枚举数的命名常量组成。使用枚举的替代方法是使用#defineor const。因此,您不能从枚举中删除或添加值。

于 2012-11-06T07:21:05.663 回答