Я пытаюсь реализовать следующее: я должен отправлять и получать одно и то же сообщение, но с разными стеками протоколов. Например, у меня есть клиент MQTT, который отправляет и получает сообщения MQTT, и клиент ROS, который делает то же самое, но использует протокол обмена сообщениями, отличный от MQTT. Поэтому я подумал, что с помощью класса Singleton, называемого Client
, который будет содержать универсальные (примитивные) переменные, такие как int x
, и эта переменная может использоваться совместно с ROSClient
и MQTTClient
. Поэтому я прочитал этот ответ в качестве примера LINK и понял, как использовать статический экземпляр.
Но у меня есть два вопроса:
- Как мне создатьэкземпляр класса Singleton
Client
? Могу ли я создать его как в ROSClient
, так и в MQTTClient
, или я должен создать один раз в основном и просто передать его соответствующим функциям? - Когда в ответе упоминается «потокобезопасный», означает ли авторчто переменные класса Singleton не могут быть видоизменены сразу, и мне не нужно использовать
std::atomic
например?