Ich versuche, einen Vektor (oder Stapel) von Funktionen zu speichern. Die Idee ist, dass ich eine Reihe von Funktionen habe, die Widgets zum Hauptfenster hinzufügen und entfernen. Ich verwende einen Timer-Alarm und immer, wenn der Alarm aufgerufen wird, rufe ich die Funktion an der Spitze des Stapels von Funktionen.
Meine Funktionen werden also immer vom Typ void sein. Mein Problem/Missverständnis ist, wie man einen stl::Stapel von void-Funktionen delcare & wie ich diese Funktion ausführen?
class InstructionScreen
{
std::stack <void*> instructionSteps; // is this how I declare a stack of functions
void runTimerEvent()
{
if ( !instructionSteps.empty() )
{
// call the function at the top of the stack
// how do I call the function?
(*instructionSteps.top()); // is that how?
instructionSteps.pop();
}
}
void step1()
{
// here I create some widgets & add them to the main window
}
void step2()
{
// delete widgets from window
// create some different widgets & add them to the main window
}
void buildStack()
{
instructionSteps.push( (&step1()) ); // is this correct?
instructionSteps.push( (&step2()) );
}
};