我可以编写一个在c ++中返回枚举的函数吗?

时间:2015-04-13 09:28:52

标签: c++ enumeration

这可能吗?在正常情况下,我使用int来返回函数,但我只是想知道这是否可行。

enum Direction { east, west, north, south };

Direction GetDirection()
{
    return direction;
}

1 个答案:

答案 0 :(得分:1)

是的,这是允许的,尽管你应该注意两件事:

  1. C ++中的enum在内部表示为一个整数类型,能够保存您指定的所有值。在你的情况下,范围将是0,1,2,3并且int就足够了,尽管编译器也可以选择另一种类型。可以在显式枚举列表中返回direction值。例如,您可以返回4。

  2. 如果您尝试将无法强制转换为支持enum的整数类型的值,则程序行为未定义。

  3. C ++ 11具有类eumerations ,它将枚举与其允许值绑定得更紧密。