Sun*_*ula 0 c++ enums enum-class
尝试打印枚举类对象时出错。我在尝试打印时遇到错误。我在哪里做错了?
#include <iostream>
using namespace std;
int main()
{
enum weekdays{sunday,monday,tuesday};
cout<<monday<<endl; // getting value as 1 as i expected.
enum class Weekday{sunday,monday,tuesday};
enum class Holiday{sunday,saturday};
Weekday wday=Weekday::monday;
cout<<Weekday::monday<<endl; // getting error
cout<<wday<<endl; //getting error
return 0;
}
Run Code Online (Sandbox Code Playgroud)
为什么我们不能在 c++ 中将 enum 类的值打印为 enum
因为枚举类不同于枚举。区别之一是与 enum 不同,enum 类实例不会隐式转换为基础整数类型。由于您没有为枚举类定义输出流插入运算符,因此无法将其插入到输出流中。
我在哪里做错了?
错误是假设枚举类的行为与枚举相同。
如果我想知道 Weekday wday=Weekday::monday; 中存储的值 我怎么知道。?
通过显式转换它。您可以使用静态转换。