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

enumin C++ は名前付き整数定数のセットであり、コンパイル時に評価され、そのように値を追加または削除することはできません。

于 2012-11-06T07:14:52.903 に答える
3

ビットマスクを使用しようとしている場合、各列挙値は2の累乗であり、列挙内で一意である必要があります。

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

progとの両方を選択するにはecon、次のように入力します。

MyEnum v = prog | econ;

後でフラグを削除するには、次のprogように入力します。

v = v & ~prog;

詳細については、ウィキペディアのビットマスクのページをご覧ください

于 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

列挙型は、列挙型と呼ばれる名前付き定数のセットで構成されるユーザー定義型です。列挙型を使用する代わりに、#defineまたはを使用することもできconstます。したがって、列挙型から値を削除または追加することはできません。

于 2012-11-06T07:21:05.663 に答える