Oracle编写的Java代码倾向于使用常量整数标识符,其中等效的是C++中的枚举。使用CIIs的好处在于,您可以轻松地在基类或派生类中添加更多内容,而不会破坏代码(太糟了……)。我的问题是:是否有一种方法可以使用C++中的枚举来实现这一点,还是我必须坚持常量?
发布于 2011-07-25 22:51:01
您可以在Java中这样做,因为它的字节码会被解释(或者更可能是最近编译的“准时”编译):您有单独的部分,并且在运行时将它们放在一起。
C++完全编译成本机代码。任何更改都需要一个完整的编译。如果完全重新编译是可以接受的,那么向枚举中添加一个新项是可能的,甚至比添加CIIs更不可能破坏代码。
发布于 2011-07-26 00:28:28
假设您无法更改原始枚举声明,并且绝对需要这样做,则可以使用静态强制转换。
enum ENUM_TYPE {
VALUE1,
VALUE2,
VALUE3
};
static const ENUM_TYPE VALUE4 = static_cast<ENUM_TYPE>(VALUE3 + 1);https://stackoverflow.com/questions/6823278
复制相似问题