Salve, mi servirebbe una mano con i puntatori a funzione. Vorrei chiamare casualmente dei metodi di una classe usando le librerie rand() e <vector>. Mi ritrovo in questa situazione
File .h :
class cartellino : public casella {
public:
cartellino();
void EstraiCartellino();
virtual void Funzione0(double prova);
virtual void Funzione1(double prova);
virtual void Funzione2(double prova);
virtual void Funzione3(double prova);
// ecc...
protected:
std::vector<void (cartellino::*)(double)> ListaFunzioni;
};
File .cc :
cartellino::cartellino(){
ListaFunzioniIniziale.push_back(&cartellino::Funzione0);
ListaFunzioniIniziale.push_back(&cartellino::Funzione1);
ListaFunzioniIniziale.push_back(&cartellino::Funzione2);
//ecc...
}
void cartellino::EstraiCartellino(){
double temp;
temp=rand();
temp=(ListaFunzioni.size()*temp/RAND_MAX);
*(ListaFunzioni[temp])(0.); //il problema è qui
}
void cartellino::Funzione0(double prova){}
void cartellino::Funzione1(double prova){}
void cartellino::Funzione2(double prova){}
Non so come chiamare le funzioni contenute nel vettore ListaFunzioni. La scrittura riportata è scorretta e, oltre a non sapere il perchè lo sia, non riesco a trovare "per tentativi" quella corretta. Mi dà sempre errore in fase di compilazione! Grazie in anticipo