|
VC++MFC中将enum赋值给int
在MFC中,将枚举(enum)赋值给整型(int)可以通过以下方式实现:
隐式类型转换
标准枚举(非强类型枚举)可以直接隐式转换为int类型:
- enum Color { Red, Green, Blue };
- int colorValue = Green; // 隐式转换,colorValue值为1
复制代码
显式强制类型转换
适用于所有枚举类型(包括强类型枚举enum class):
- enum class Status { Ok = 200, Error = 404 };
- int statusCode = static_cast<int>(Status::Ok); // 显式转换,statusCode值为200
复制代码
通过枚举成员方法
若枚举定义了返回int的成员方法,可直接调用:
- enum class Priority { Low = 1, Medium, High };
- int priorityValue = static_cast<int>(Priority::Medium); // 值为2
复制代码
注意事项:
强类型枚举(enum class)必须使用static_cast转换;
标准枚举与int的隐式转换可能导致类型安全问题;
枚举默认从0开始递增赋值,也可显式指定值。
|
|