0

我有一个通信缓冲区,它在 Listner 类中实现为 char commBuffer[BUFFER_SIZE]

创建由所有类共享的通信缓冲区的最佳方法是什么,而不是每个类都具有这种结构,而是将其仅传递一个指向缓冲区的指针?

4

2 回答 2

0

像这样的东西,如果它是线程的,则使用互斥锁来控制访问。

class Listener {
    static char commBuffer[BUFFER_SIZE];
    static boost::mutex mutex;
};
于 2012-11-28T20:28:22.603 回答
0

简单的方法是声明commBuffer[BUFFER_SIZE];全局。我不太确定best路。但如果best在你的情况下意味着easiest我会坚持全球声明。如果您真的想保持纯粹的面向对象,请将其char commBuffer[BUFFER_SIZE]放入一个Singleton类中并向其中读取/写入数据。

于 2012-11-28T17:48:16.663 回答