Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1753 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [Résolu]Instanciation d'une classe differente selon les arguments

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu]Instanciation d'une classe differente selon les arguments

n°1351554
Nash49
Posté le 21-04-2006 à 19:46:45  profilanswer
 

Bonjour tout le monde,
 
Alors j'ai cherche de l'aide mais j'ai pas trouve donc je suis desole si c'est un probleme basique pour vous :sweat: .
 
Voila je voudrais créer une instanciation de classe différente selon les arguments passés au shell.
En gros si je tape sous windows "mon_prog.exe sumo" je voudrais que ca crée un objet issu de la classe sumo.
 

Code :
  1. string first_command(argv[1]);
  2. if (first_command == "sumo" )
  3. Sumo first_fighter = createSumo();
  4. else if (first_command == "boxe" )
  5. EnglishBoxer first_fighter = createEnglishBoxer();
  6. else if (first_command == "savate" )
  7. FrenchBoxer first_fighter = createFrenchBoxer();


 
Le but étant d'avoir un seul algorythme simple ensuite en utilisant les méthodes des classes (les méthodes étant différentes selon les classes).
 
Le probleme c'est que vu que je declare mes instances dans le "if" je les perds en en sortant.
Alors a part en declarant en global ou un truc dans le style je vois pas quoi faire d'autre pour contourner le probleme.
 
Si quelqu'un a une idée merci :)


Message édité par Nash49 le 21-04-2006 à 20:40:24
mood
Publicité
Posté le 21-04-2006 à 19:46:45  profilanswer
 

n°1351564
franceso
Posté le 21-04-2006 à 20:03:53  profilanswer
 

tu fais dériver tes trois classe de la même mère. Ton first_fighter est un pointeur vers un objet mère et tu le fais pointer vers des objets instanciés selon ce que te donne l'utilisateur.
 

Code :
  1. class Fighter { /*...*/ };
  2. class Sumo : public Fighter { /*...*/};
  3. class EnglishBoxer : public Fighter { /*...*/};
  4. int main( int argc, char **argv )
  5. {
  6.   Fighter *first_fighter;
  7.   string first_command(argv[1]);
  8.   if (first_command == "sumo" )
  9.     first_fighter = new Sumo;
  10.   /* ... */
  11. }


 
tu devrais te renseigner sur les notions d'héritage et de polymorphisme.


Message édité par franceso le 21-04-2006 à 20:05:09

---------------
TriScale innov
n°1351568
Nash49
Posté le 21-04-2006 à 20:15:27  profilanswer
 

ho bah j'avais meme pas penser a faire ca.
 
ca a l'air de fonctionner merci :)
 
je pensais que les classes ayant des methodes differentes et des variables differentes ca marcherait pas.
parce qu'elles heritaient toutes deja d'une autre.
 
bon bah cool :)


Message édité par Nash49 le 21-04-2006 à 20:15:49

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [Résolu]Instanciation d'une classe differente selon les arguments

 

Sujets relatifs
[Résolu] Changement de couleur au passage de la souris[RÉSOLU]Utilisier les 'in' dans une requéte sql
Format date dans textbox malgrès différente version d'Excel[résolu] Probleme de popup sur mon site
[Résolu] probleme de syntaxe *&Pb de caractère spéciaux \ [RESOLU]
[résolu] difference tableau multi dimensionCréer dynamiquement une classe avec ses parametres (possible or not ?)
[Resolu] Encapsulation C -> c++ ?Redirection différente pour le même code !
Plus de sujets relatifs à : [Résolu]Instanciation d'une classe differente selon les arguments


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR