gpt4 book ai didi

c++ - 是否有可能在 C++ 中枚举枚举?

转载 作者:IT老高 更新时间:2023-10-28 22:14:36 26 4
gpt4 key购买 nike

在 c++ 中是否可以有枚举的枚举。我必须有类似的东西:

错误类型:

  • Type1
  • 类型2
  • Type3

类型1:

  • 原因1
  • 原因2

类型2:

  • 原因3
  • 原因4

类型3:

  • 原因5
  • 原因6

每一个都是整数值。它们应该用于通信协议(protocol)栈。在接收端,接收器必须从接收到的值中解码错误的类型和原因。如果无法使用枚举,最好的方法是什么?

最佳答案

我什至不确定枚举的枚举是什么意思。但是通常的处理方法是定义范围单个枚举:

enum Errors
{
type1 = 0x000,
cause1,
cause2,

type2 = 0x100,
cause3,
cause4,
...
causeMask = 0xFF,
typeMask = 0xFF00
};

或者简单地定义单独的枚举,用单独的词,并使用unsigned (或 unsigned short 或其他)和一点类型转换不同的原因。

无论采用什么解决方案,我都会将其封装在一个类,因此客户端代码只需要处理 errorType()errorCause(); errorCause() 甚至可以是错误类型值。 (但在某个地方,你需要明确每个类型值的特化,因为编译器会否则不知道如何将值映射到导致类型。)

关于c++ - 是否有可能在 C++ 中枚举枚举?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15427771/

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