C++中的多态Enum

met*_*dos 6 c++ polymorphism enums

我有这些枚举声明:

enum MessageType{  
    REQ_LOGIN,
    REQ_GET_FIELD,       

    RES_LOGIN,
    RES_GET_FIELD
}

enum Request{
    REQ_LOGIN,
    REQ_GET_FIELD
};

enum Respond{
    RES_LOGIN,
    RES_GET_FIELD
};
Run Code Online (Sandbox Code Playgroud)

显然我在Enum的重复元素.有什么方法可以防止这种情况吗?

编辑:我在通用类上使用"MessageType"通过网络发送它,另一方面我解析此类的对象并发送消息.但我有不同的客户; 有些人只期望具有"Request"类型成员的对象,而有些人只期望具有"Response"类型成员的对象.

使用"Message"类,我正在创建"DispatcherRequest".

class Message
{
public:
……….
    MessageType messageType;
}


struct DispatcherRequest
{
..........
    Request type;
};
Run Code Online (Sandbox Code Playgroud)

Pet*_*erK 6

为什么不尝试这样的事情呢?

enum MainType{  
    REQUEST,
    RESPONSE
};

enum SubType{
    LOGIN,
    GET_FIELD
};

class Message {
   MainType type;
   SubType sub_type;
   ...
};
Run Code Online (Sandbox Code Playgroud)