Если вы хотите сохранить правильный объект-свечу в своем классе, используйте это в заголовке:
Led* _led;
Candle _candle;
В этом случае конструктор становится:
CandleAnimation::CandleAnimation(Led *led, Color flameColor)
: _led(led)
, _candle(led, 0xFF0000)
{
// Rest of the constructor
}
Если вы хотитечтобы придерживаться динамического выделения (вы этого не сделаете), объявите _candle
как unique_ptr
:
std::unique_ptr<Candle > _candle ;
И затем (если у вас есть C ++ 14):
_candle = std::make_unique(_led, 0xFF0000);
В C ++ 11:
_candle = std::unique_ptr(new Candle(_led, 0xFF0000));
Если у вас нет современного C ++ (не знаете, что предлагает arduino?), Вам нужно сделать то же самое, но отслеживать время жизни _candle
.