Hilfe nötig bei Schulprojekt!

class Blinker
{
  protected:
  const byte ledPin;
  const unsigned long hellPhase;
  const unsigned long dunkelPhase;
  unsigned long zeitMerker = 0;
  void *sprungZiel = 0; // zustandsmerker

  public:
  Blinker(const byte ledPin,const unsigned long hellPhase,const unsigned long dunkelPhase): ledPin(ledPin),hellPhase(hellPhase),dunkelPhase(dunkelPhase){}

  void run(const bool blinkAnforderung)
  {
    if(!sprungZiel) sprungZiel = &&Start;
    goto *sprungZiel;

    Start:
    if(!blinkAnforderung) return;
    digitalWrite(ledPin,HIGH);
    sprungZiel = &&HellPhase;
    zeitMerker = millis();
    
    HellPhase:
    if(millis()-zeitMerker<hellPhase) return;
    digitalWrite(ledPin,LOW);
    sprungZiel = &&DunkelPhase;
    zeitMerker = millis();
  
    DunkelPhase:
    if(millis()-zeitMerker<dunkelPhase) return;
    sprungZiel = 0;
  }
  
  void init()
  {
    pinMode(ledPin,OUTPUT);
  }
};


const byte taster     = 2;
Blinker blinkGruppe[] = { // {pin,hellzeit,dunkelzeit}
                          {13,100, 500},
                          {12,500,1000},
                        };




void setup() 
{
  pinMode(taster,INPUT_PULLUP);
  for(Blinker &blinker:blinkGruppe) blinker.init();
}

void loop() 
{
  bool blinkAnforderung = !digitalRead(taster);
  for(Blinker &blinker:blinkGruppe) blinker.run(blinkAnforderung);
}

Ist das: "Mit Kanonen auf Spatzen schießen?"

Vielleicht...

Aber, ich kann durchnummerierte Variablen nicht leiden!
Kann sie nicht leiden........

Bekomme schon fast körperliche Schmerzen, wenn ich sie sehe.