我正在从一些主要与 USB 串行通信有关的简单 C 函数创建一些 C++ 库。我正在用 Visual Studio 2010 编写它,目的是移植到 mac 和 linux。
我目前有一个 SerialCommunication 类和一个 PumpComm 子类。目前,有一个 C 函数用于 CreateMessage(uint8 msg[])、SendMessage(uint8 msg[])、ReadSerial(uint8 readmsg[]) 等。
我的问题是:将 msg[] 更改为成员变量而不是函数参数有什么缺点吗?(伪代码):
int main()
{
SerialPort sp;
sp.OpenSerial("COM19");
sp.CreateMessage("Messagetosend1234");
sp.SendMsg();
}
class SerialPort
{
private:
uint8 msg[];
public:
int32 OpenSerial();
int32 CreateMessage(uint8 msg[]);
}
我看到的优点包括:1)msg显然由它将发送到的串口拥有,2)msg的范围是串口的范围,3)msg的实现可以隐藏(当我添加了getter/setter)..所以基本上是OOP的优势。我对 c++ 和 OOP 还很陌生,所以我可能会遗漏一些东西,尤其是在串行通信方面。谢谢你的时间。