Back to Blog

协议基类 struct p_base 理解

#struct#linux#class#编程

这个 struct 定义了一个名为 p_base 的结构体,它包含两个整型成员 p_namep_len,以及一个构造函数。在工业控制、物联网 (IoT) 或边缘 AI 设备中,数据通常以特定协议格式传输。一个协议消息通常包含一个标识符(如 protocol_code)和消息体的长度(如 protocol_len)。p_base 提供了一个简洁的方式来封装这些基本信息。

它的构造函数 p_base(int protocol_code, int protocol_len):p_name(protocol_code),p_len(protocol_len){} 允许在创建 p_base 对象时直接初始化 p_namep_len

C++ 中 structclass 的异同

C++ 中的 structclass 在功能上非常相似,但存在一个关键的区别:默认的成员访问权限和默认的继承访问权限。

  • struct: 默认成员访问权限是 public,默认继承访问权限也是 public
  • class: 默认成员访问权限是 private,默认继承访问权限也是 private

除了这个默认访问权限的区别,structclass 在C++中几乎是等价的。这意味着你可以为 struct 定义构造函数、析构函数、成员函数、运算符重载,甚至可以进行继承。

原始文章中给出了 struct p_baseclass 等价形式,这完美地说明了这一点: