Как вызвать конструктор класса после того, как он был вызван один раз?

У меня проблема с классами. У меня есть куча кода, этот код использует библиотеку Adafruit MQTT FONA. Я вызываю класс для создания нового экземпляра и подключения к указанному серверу с помощью этого кода;

Adafruit_MQTT_FONA mqtt(&fona, AIO_SERVER, AIO_SERVERPORT, AIO_USERNAME, AIO_KEY);

Когда я хочу подключиться к другому серверу, я вызываю конструктор этого экземпляра после его однократного вызова. Но это не позволяет мне построить его снова. Как я могу снова создать тот же экземпляр после того, как он был создан один раз?

void connectMqtt()
{
    Adafruit_MQTT_FONA mqtt(&fona, AIO_SERVER, AIO_SERVERPORT, AIO_USERNAME, AIO_KEY);
}

connectMqtt();

Спасибо за помощь! Хорошего дня!

, 👍0

Обсуждение

примечание: ваш вопрос не об Arduino.... это вопрос по программированию на C++., @jsotola


1 ответ


2

Вы не можете. Созданный объект остается созданным до тех пор, пока вы его не удалите.

Вы можете либо использовать динамическое размещение и new и delete для создания и уничтожения объектов по своему желанию, либо вы можете создать несколько объектов с разными настройками и использовать разные объекты в разных раз.

Другой вариант — изменить библиотеку, чтобы создать новую функцию, которая принимает и назначает новые настройки сервера. Все, что делает конструктор, — это сохраняет настройки в переменных. Нет причин, по которым вы не могли бы просто изменить эти переменные.

,