【发布时间】:2020-11-08 18:37:34
【问题描述】:
我想知道是否有办法在 C++ 中更新枚举变量,从而动态地为程序提供新状态。例如,我为星期几创建了一个 void 枚举变量,然后,我想让用户输入日期来更新枚举变量。
【问题讨论】:
-
不,必须在编译时定义枚举。
-
枚举的要点是有一个不同的类型,其标识符可以用于源代码中的不同值。因此,考虑在运行时(当用户可以输入内容时)向枚举添加新标识符 - 比如说
Tuesday- 是没有意义的 - 因为代码已经被编译(你不能使用Tuesday因为它在枚举定义中不存在)。 -
扩展枚举是一个总是以良好的意图开始的概念,然后为以后必须处理它的任何人制造混乱。我觉得很幽默,甚至 python 也通过了扩展枚举。所以,不要这样做。想想你试图解决更多的问题。希望有更好的解决方案能自行揭晓。
-
我认为这是一个 XY 问题,如果讨论可能会有一个干净和更好的解决方案。