我想打印以km为单位的u
enum class Unit { km, m, cm };
int main()
{
Unit u = Unit::km;
std::cout<<u;
return 0;
}
为什么会出现错误?
错误:
error: no match for ‘operator<<’ (operand types are ‘std::ostream {aka std::basic_ostream}’ and ‘Unit’)
您的Unit
枚举是有范围的枚举,enum class
这些枚举类型不允许隐式转换。如果要使用它,则必须强制转换cout
:
std::cout << static_cast<int>(u);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句