Liste mit Funktionen übergeben

Hallo Leute
kann mir jemand einmal zeigen, wie ich eine Liste von verschiedenen Funktionen erstellen und an eine Methode übergeben kann?

Hintergrund ist ich will mir eine Klasse schaffen deren Methode es mir ermöglicht zyklisch Funktionen aufzurufen, die ich ihr in einer Liste/ einem Array übergebe.
Noch bin ich nicht sehr weit mit dem Praktischen Programmieren, da ich mir im Kopf noch nicht klar bin wie ich soeine Liste/Array erzeuge.

Beispiel:

class CycleTasks
{
  public:
  int cycle=500;
  unsigned long nextTimestamp=cycle;
  bool Task(unsigned long timestamp,#liste von Funktionen#)
  {
    if(timestamp>nextTimestamp)
    {
        nextTimestamp=timestamp+cycle;
        for(int i=0; i< #länge der Liste#; i++)
        {
          #führe Funktion an stelle i der Liste aus#
        }
        return(true);
     }
     else
    {
         return(false);
    }


  
    }
}

CycleTasks Task1000;

bool Funktion1(...)
{...}
bool Funktion2(...)
{...}
bool Funktion3(...)
{...}
...

void Setup()
{
  Task1000.cycle=1000;
  #Packe Funktionen in die Liste#
}

void Loop()
{
  timestamp=millis();
  Task1000.Task(timestamp,#Liste von Funktionen#);
}

}

Ich hoffe ihr versteht was ich bezwecken möchte^^
Hackt bitte nicht zu sehr auf meiner Syntax rum^^ habe mir das Beispiel gerade aus den Fingern gesaugt und dabei nicht auf 100% Richtigkeit geachtet^^

Schau dir Funktionszeiger an. Dann kannst du ein Array aus Funktionszeigern und dessen Größe übergeben

Funktionen und Variablen fangen in C/C++ übrigens üblicherweise mit Kleinbuchstaben an. Wenn etwas mit Großbuchstaben anfängt weiß man dass es eine Klasse ist. Ist nicht zwingend, aber wird praktisch überall so gemacht

// typedef void (*FunctionPointer)(void);
using FunctionPointer = void (*)(void); 


void tuwasA()
{
  Serial.println("tuts ");
}

void tuwasB()
{
  Serial.println("ganz ");
}

void tuwasC()
{
  Serial.println("gut ");
}


FunctionPointer functions[] = {tuwasA,tuwasB,tuwasC};

void setup(void) 
{
  Serial.begin(9600);
  for(FunctionPointer f:functions) f();
}

void loop(void) 
{

}

Das typedef kann man auch durch C++11 ersetzen:

using FunctionPointer = void (*)(void);

Danke. Sieht schöner aus.

Werde mir mal anschauen, was das sonst noch für Auswirkungen hat.