Salut,
Je voudrais faire un peu de polymorphisme dans un bout de code arduino. Je sais que ce n'est pas optimum mais j'ai un peu de place et je voudrais garder mes réflexes de Java. Maintenant en C et les pointeurs, c'est une autre histoire ...
Dans l'idéale, je voudrais utiliser un tableau d'une taille variable mais limité, contenant des d'objets que j'appellerai en boucle, chacun faisant son boulot. Le pc communique avec la carte arduino pour lui donner le type et le nombre d'objet à faire bosser.
Je tatonne entre les new, les malloc, les * mais je n'arrive pas à trouver la combinaison qui fonctionne ... quelqu'un peut-il me donner un coup de pouce ?
class Animal
{
protected :
int _num ;
public :
Animal(){}
Animal( int num )
{
_num = num ;
}
virtual void parle(){} ; // methode virtuelle pure a redefinir dans les sous classes
};
class Chien :
public Animal
{
public :
Chien( int num ):
Animal( num )
{
}
virtual void parle()
{
Serial.println("wouarf");
}
};
class Chat :
public Animal
{
public :
Chat( int num ):
Animal( num )
{
}
virtual void parle()
{
Serial.println("miaou");
}
};
Animal * betes = new Animal[20] ;
int nbBetes = 0 ;
void setup()
{
Serial.begin(9600);
betes[nbBetes++] = new Chat(1);
betes[nbBetes++] = new Chien(2);
}
void loop()
{
for( int i = 0 ; i < nbBetes ; i++ )
{
betes[i]->parle();
Serial.println( millis() );
delay( 1000 );
}
}