V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
icemanpro
V2EX  ›  C++

如何根据 enum 内元素,定义不同的子 enum?

  •  
  •   icemanpro · 2023-06-28 15:19:51 +08:00 · 1107 次点击
    这是一个创建于 518 天前的主题,其中的信息可能已经有所发展或是发生改变。
    以报警类型为例,每个报警类型下会有不同的报警子类型。这时应该如何设计结构?

    enum class AlarmType
    {
    alarm_type1,
    alarm_type2,
    }


    现在有报警子类型 alarm_type1_sub_type1,alarm_type1_sub_type2,alarm_type2_sub_type1,alarm_type2_sub_type2 等。有什么好的数据结构设计?
    2 条回复    2023-06-28 19:44:42 +08:00
    DsuineGP
        1
    DsuineGP  
       2023-06-28 15:39:05 +08:00
    相同类别的子类型用 enum 封装, 多个 enum 用 namespace 隔离
    ----
    ```
    namespace AlarmType
    {
    alarm_type1
    {
    alarm_type1_sub_type1,
    alarm_type1_sub_type2
    };

    alarm_type2
    {
    alarm_type2_sub_type1,
    alarm_type2_sub_type2
    };
    }
    ```
    duaoxiao
        2
    duaoxiao  
       2023-06-28 19:44:42 +08:00
    ```py
    class Enum:
    Value1 = 1
    Value2 = 2

    class EnumValue1:

    class EnumValue2:

    enum_mapping = {
    Enum.Value1: EnumValue1,
    Enum.Value2: EnumValue2
    }

    ```
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5464 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 09:13 · PVG 17:13 · LAX 01:13 · JFK 04:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.