创建一个额外的成员函数将枚举转换为字符串再输出。
时间: 2024-11-12 17:40:44 浏览: 22
在C++中,为了方便处理枚举转换为字符串的情况,你可以创建一个名为 `to_string()` 的成员函数,该函数会接受枚举变量作为输入,并返回一个表示该枚举值的字符串。以下是基本的步骤:
```cpp
// 假设我们有一个名为 CPU_Rank 的枚举类型
enum class CPU_Rank {
LOW = 0,
MEDIUM,
HIGH
};
class CPU {
public:
// 原有的构造函数
CPU(int rank) : rank_(rank) {}
// 新增的将枚举转换为字符串的成员函数
std::string rankToString() const {
switch (rank_) {
case CPU_Rank::LOW: return "LOW";
case CPU_Rank::MEDIUM: return "MEDIUM";
case CPU_Rank::HIGH: return "HIGH";
default: throw std::invalid_argument("Invalid rank value");
}
}
private:
CPU_Rank rank_;
};
// 使用示例
int main() {
CPU cpu(CPU_Rank::MEDIUM);
std::cout << "CPU 构造函数被调用,rank: " << cpu.rankToString() << std::endl;
return 0;
}
```
在这个例子中,`rankToString()` 函数根据枚举值返回对应的字符串,然后在输出时直接调用这个函数。这种方式可以避免因枚举值变化导致的类型转换错误,提高了代码的可读性和灵活性。如果枚举值有变动,只需更新这个函数即可,无需修改其他地方的代码。
阅读全文