gpt4 book ai didi

c++ - 在 C++ 中扩展枚举?

转载 作者:IT老高 更新时间:2023-10-28 12:11:08 29 4
gpt4 key购买 nike

C++ 中有没有办法扩展/“继承”枚举?

IE:

enum Enum {A,B,C};
enum EnumEx : public Enum {D,E,F};

或者至少定义它们之间的转换?

最佳答案

不,没有。

enum 在 C++ 中确实是个糟糕的东西,这当然是不幸的。

即使是 C++0x 中引入的 class enum 也没有解决这个可扩展性问题(尽管它们至少为类型安全做了一些事情)。

enum 的唯一优点是它们不存在:它们提供了一些类型安全性,同时由于它们被编译器直接替换,因此不会产生任何运行时开销。

如果你想要这样的野兽,你必须自己动手:

  • 创建一个类 MyEnum,其中包含一个 int(基本上)
  • 为每个有趣的值创建命名构造函数

您现在可以随意扩展您的类(添加命名构造函数)...

虽然这是一种解决方法,但我从未找到处理枚举的令人满意的方法......

关于c++ - 在 C++ 中扩展枚举?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1804840/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com