首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++:扩展枚举定义?

C++:扩展枚举定义?
EN

Stack Overflow用户
提问于 2011-07-25 22:44:46
回答 2查看 4.6K关注 0票数 1

Oracle编写的Java代码倾向于使用常量整数标识符,其中等效的是C++中的枚举。使用CIIs的好处在于,您可以轻松地在基类或派生类中添加更多内容,而不会破坏代码(太糟了……)。我的问题是:是否有一种方法可以使用C++中的枚举来实现这一点,还是我必须坚持常量?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-07-25 22:51:01

您可以在Java中这样做,因为它的字节码会被解释(或者更可能是最近编译的“准时”编译):您有单独的部分,并且在运行时将它们放在一起。

C++完全编译成本机代码。任何更改都需要一个完整的编译。如果完全重新编译是可以接受的,那么向枚举中添加一个新项是可能的,甚至比添加CIIs更不可能破坏代码。

票数 0
EN

Stack Overflow用户

发布于 2011-07-26 00:28:28

假设您无法更改原始枚举声明,并且绝对需要这样做,则可以使用静态强制转换。

代码语言:javascript
复制
enum ENUM_TYPE {
    VALUE1,
    VALUE2,
    VALUE3
};

static const ENUM_TYPE VALUE4 = static_cast<ENUM_TYPE>(VALUE3 + 1);
票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6823278

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档