intendi forse una roba del genere?
Codice PHP:
#include <iostream>
#include <cassert>
void Comportamento1 (){
std::cout << __func__ << std::endl;
}
void Comportamento2 (){
std::cout << __func__ << std::endl;
}
void Comportamento3 (){
std::cout << __func__ << std::endl;
}
int main (void){
const int nMax = 9;
for (int i = 0; i < nMax; ++i){
switch (1 + (i%3)){
case 1:
Comportamento1 ();
break;
case 2:
Comportamento2 ();
break;
case 3:
Comportamento3 ();
break;
default:
assert (false);
}
}
return 0;
}
In ogni modo puoi anche evitare lo switch:
Codice PHP:
#include <iostream>
#include <cassert>
typedef void (*ComportamentoX) (void);
void Comportamento1 (){
std::cout << __func__ << std::endl;
}
void Comportamento2 (){
std::cout << __func__ << std::endl;
}
void Comportamento3 (){
std::cout << __func__ << std::endl;
}
int main (void){
const ComportamentoX aComportamentoArray [] = {
Comportamento1,
Comportamento2,
Comportamento3
};
const int nMax = 9;
for (int i = 0; i < nMax; ++i){
aComportamentoArray [i%3] ();
}
return 0;
}