显示枚举类型

Displaying enumerated type

本文关键字:类型 枚举 显示      更新时间:2023-10-16

好了,这就是我的显示函数,以及与它相关联的枚举类型

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值,因此可以对其进行强制类型转换。