February 5th, 2020

Подскажите решение по C++ ?

это перепост заметки, оригинал находится на моем сайте: https://lleo.me/dnevnik/2020/02/04

Часто встречаю на Ардуино библиотеки, которые требуют инициализации в коде с заранее заданнными пинами, например:

=============== cut ===============

#include <LampDriver.h>

#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(); будет работать? У меня всякие ошибки сыпятся.
Collapse )