icemanpro
V2EX  ›  C++

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

  •  
  •   icemanpro · Jun 28, 2023 · 1924 views
    This topic created in 1066 days ago, the information mentioned may be changed or developed.
    以报警类型为例,每个报警类型下会有不同的报警子类型。这时应该如何设计结构?

    enum class AlarmType
    {
    alarm_type1,
    alarm_type2,
    }


    现在有报警子类型 alarm_type1_sub_type1,alarm_type1_sub_type2,alarm_type2_sub_type1,alarm_type2_sub_type2 等。有什么好的数据结构设计?
    2 replies    2023-06-28 19:44:42 +08:00
    DsuineGP
        1
    DsuineGP  
       Jun 28, 2023
    相同类别的子类型用 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  
       Jun 28, 2023
    ```py
    class Enum:
    Value1 = 1
    Value2 = 2

    class EnumValue1:

    class EnumValue2:

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

    ```
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   910 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 22:31 · PVG 06:31 · LAX 15:31 · JFK 18:31
    ♥ Do have faith in what you're doing.