显示枚举类型
Displaying enumerated type
好了,这就是我的显示函数,以及与它相关联的枚举类型
enum EventType {ARRIVAL = 'A', DEPARTURE = 'D'};
void EventList::display()
{
cout << "Event List: ";
for (ListNode *cur = head; cur != NULL; cur = cur->next)
{
if (cur->item.type == ARRIVAL)
cout << ARRIVAL << cur->item.beginTime << ":" << cur->item.transactionLength << " ";
else if (cur->item.type == DEPARTURE)
cout << DEPARTURE << cur->item.beginTime << " ";
}
cout << endl;
}
这样做的问题是,我想要的输出是显示A或d,而不是与字母相关的整数值。我该怎么做呢?
Event List: 652:5 686
我想让它读作
Event List: A2:5 D6
这很简单:将其转换为char
:
cout << char(ARRIVAL) << cur->item.beginTime << ":" << cur->item.transactionLength << " ";
DEPARTURE
同。
以这种方式工作的原因是,当在表达式中使用时,枚举通常被提升为int
(或者如果它们的值不适合int
,则提升为更大的整型)。但是,在枚举中有正确的char
值,因此可以对其进行强制类型转换。
相关文章:
- 在有符号基础类型枚举的位域上溢出
- 在编译时将强类型枚举器转换为其基础类型?
- 如果 int 是"not within the enums range",为什么将 int 转换为强类型枚举会编译?
- 类型枚举的变量不是类型名称
- 强类型枚举的语法实现错误
- 枚举与强类型枚举
- 错误:T没有命名类型-用于使用强类型枚举的专门化
- 如何使用强类型枚举
- QT:将强类型枚举参数传递到插槽
- 在类定义中声明类型(枚举、结构等)会增加代码大小
- Visual Studio 11 (beta) 中的强类型枚举类
- 使用强类型枚举对类型和子类型进行建模
- 不允许将强类型枚举用作同一基础类型的参数
- 如何正确使用C++强类型枚举
- 带有强类型枚举的模板参数推导
- 是否可以在googleprotobuf中为类型(枚举或消息)定义一个别名
- C++中默认初始化的全局强类型枚举是什么
- std::is_signed不适用于强类型枚举:int
- 如何定义自定义值的类型?(枚举类型定义)
- 将强类型枚举传递给函数