c++ - 将 int 转换为枚举

标签 c++

我有一个 object 并且它的属性之一是 object.type 当我返回 object.type 时它返回 2 但我宁愿它返回 2 的枚举,例如 soft

enum type {
    hard = 0,
    brittle,
    soft
};

最佳答案

通常最简单(也是正确)的方法可能是为此使用 std::map:

enum MyEnum {A, B, C};

std::map<MyEnum, std::string> myEnumDesc;
MyEnumDesc[A] = "A";
...

// Then
std::cout << myEnumDesc[object.type] << std::endl;

(如果 typeMyEnum 类型)。还有其他替代方案,或多或少是便携的,但您可以放心使用它。

关于c++ - 将 int 转换为枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7974129/

相关文章:

c++ - SDL2 无法创建窗口,因为找不到匹配的 GLX 视觉对象

php - 在 PHP-CPP 中将 Php::Object 转换回 C++ 对象?

c++ - 分解模板参数包操作

c++ - OCIErrorGet 和 OCI_ERROR 的多重错误处理

c++ - boost 属性树 xml 编写器输出中没有行尾

c++ - 如何在 blender 中使用opencv(c++)代码?

c++ - 非特化模板参数的模板特化

主要gtest之前的c++段错误

c++ - (简单 C++)从文件中获取带有 vector 的矩阵

C++ 错误 - <unnamed-tag> 匿名 union 的成员不允许使用内置初始化程序