Часто встречаю на Ардуино библиотеки, которые требуют инициализации в коде с заранее заданнными пинами, например:
=============== cut ===============
#define PIN1 4
#define PIN2 16
LampDriver MyLAMP1(PIN1);
LampDriver MyLAMP2(PIN2);
void loop {
MyLAMP1.blink();
MyLAMP2.blink();
sleep(100);
}
=============== /cut ===============
Всё бы ничего, но в моей задаче нельзя заранее знать, сколько будет ламп (и будут ли вообще), и к каким пинам они окажутся подключены — эта информация появится лишь в процессе исполнения loop().
Соответственно, я подозреваю, что в C++ имеется на этот случай какой-то особый синтаксис. Например, вот мне подсказывали, new. Но как это правильно записать? LampDriver *MyLAMP1 = new LampDriver(4); ? И далее MyLAMP1.blink(); будет работать? У меня всякие ошибки сыпятся.
это перепост заметки, оригинал находится на моем сайте: https://lleo.me/dnevnik/2020/02/04