gpt4 book ai didi

c++ - 在单独的枚举类型中重用枚举值

转载 作者:IT老高 更新时间:2023-10-28 22:07:42 25 4
gpt4 key购买 nike

有没有办法在不同的类型中重用相同的枚举值?我希望能够做到以下几点:

enum DeviceState { UNKNOWN, ACTIVE, DISABLED, NOTPRESENT, UNPLUGGED };
enum DeviceType { UNKNOWN, PLAYBACK, RECORDING };

int _tmain(int argc, _TCHAR* argv[])
{
DeviceState deviceState = DeviceState::UNKNOWN;
DeviceType deviceType = DeviceType::UNKNOWN;
return 0;
}

这对我来说很有意义,但对 C++ 编译器没有意义——它提示:error C2365: 'UNKNOWN' : redefinition;之前的定义是上面第 2 行的“枚举器”。有没有这样做的正确方法,或者我应该总是使用唯一的枚举值?我无法想象这总是可以保证我是否包含其他人的代码。

最佳答案

对于那些使用 C++11 的人,您可能更喜欢使用:

enum class Foo

而不仅仅是:

enum Foo

这提供了与命名空间类似的语法和好处。在您的情况下,语法为:

enum class DeviceState { UNKNOWN, ACTIVE, DISABLED, NOTPRESENT, UNPLUGGED };
DeviceState deviceState = DeviceState::UNKNOWN;

请注意,这是强类型的,因此您需要手动将它们转换为整数(或其他任何内容)。

关于c++ - 在单独的枚举类型中重用枚举值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10411357/

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