Bonjour � toutes et � tous,
Je parcourais Stack ce matin, et je suis tomb� sur ce sujet de polymorphisme:
https://stackoverflow.com/questions/...use-it-outside
En particulier sur ce bout de code:
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
Alma* Andor;
 
 if(b00lvar){
    Andor = new Birs();
    std::cout<<Andor->Getwidth()<<" "<<Andor->Getheight()<<std::endl;
  }else{
    Andor = new Citrom();  
    std::cout<<Andor->Getwidth()<<" "<<Andor->Getdepth()<<std::endl;
  }
post� en r�ponse. On voit ici que l'initialisation de la classe d�pend d'une variable 'b00lvar'. Je me posais la question d'un cas plus large, ou nous aurions une classe de base et beaucoup de classes filles, suivant le m�me sch�ma, par exemple:
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
 
Alma* Andor;
 
switch( une_variable ) {
  case 0 : { Andor = new Birs(param1, param2); }
  case 1 : { Andor = new Citrom(param1, param2, param3); }
  case 2 : { Andor = new Blabla(param1,param4,param5); }
  etc.
  }
Est-il possible de g�n�raliser ces multiples initialisations sous une forme plus �l�gante plut�t que d'avoir une liste de if/else en fonction d'un param�tre 'une variable' sans pour autant alt�rer la performance (en termes de temps de calcul) de l'ensemble ? Je ne vois pas de solution magique, mais j�admets que ma connaissance du langage est plut�t limit�.

Merci!