c++如何实现动态添加枚举
时间: 2024-01-26 10:05:12 浏览: 70
C++实现动态数组功能
在 C++ 中,枚举类型是静态的,即在编译时就已经确定了枚举值。因此,不能动态地添加枚举值。但是可以使用类似于枚举类型的结构体来实现动态添加枚举值的效果。
具体实现可以定义一个结构体,然后在结构体中定义一个整型变量和一个字符串变量,分别表示枚举值的值和名称。然后使用一个容器(如 vector)来存储这些结构体,从而实现动态添加枚举值的效果。
以下是一个简单的例子:
```c++
#include <iostream>
#include <vector>
#include <string>
struct EnumValue {
int value;
std::string name;
};
class MyEnum {
public:
void add(int value, const std::string& name) {
values_.push_back({value, name});
}
void print() {
for (const auto& value : values_) {
std::cout << value.name << " = " << value.value << std::endl;
}
}
private:
std::vector<EnumValue> values_;
};
int main() {
MyEnum e;
e.add(1, "ONE");
e.add(2, "TWO");
e.add(3, "THREE");
e.print();
return 0;
}
```
输出结果为:
```
ONE = 1
TWO = 2
THREE = 3
```
阅读全文