2020.11.3更新
现在我知道了解决网络通信与面向对象的冲突的技术叫protobuf序列化, 反射什么的。有点难,技能点不足,学懂了再来更。
两种关系示例
在使用C++ socket编写服务器的时候,我们会使用struct指定一系列结构体作为消息报文,一般来说这些结构体都会有相同的首部,并在首部包含该结构体类型的信息。关于首部和其他消息的关系,我们一般可以选择继承关系和复合关系两种。示例如下:
- 继承关系
struct Msg { Msg(CMD cmd = CMD::LOG_ERROR, int len = sizeof(Msg)) :_cmd(cmd), _len(len) { } virtual ~Msg() { } CMD _cmd; int _len; }; struct MsgLogin : public Msg {