我在C ++中具有枚举类型,并且我试图编写一个子程序,该子程序将返回集合中的下一个值。这是我所拥有的:
enum ChineseZodiacSign { Rat, Ox, Tiger, Rabbit, Dragon, Snake, Horse, Sheep, Monkey, Rooster, Dog, Pig };
ChineseZodiacSign nextSign(ChineseZodiacSign cz)
{ if (cz%12==1)
cz=cz+1
}
我知道枚举中的每个值都是从0开始索引的,但是我不确定该怎么做。任何帮助将不胜感激。
最佳答案
您可以将其转换为整数,执行算术运算,然后将其转换回
ChineseZodiacSign nextSign(ChineseZodiacSign cz)
{
int val = static_cast<int>(cz);
val++;
val = val % 12;
return static_cast<ChineseZodiacSign>(val);
}
您当然可以将所有内容写在一个语句中,但是为了可读性我将其分开。