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

  FORUM HardWare.fr
  Programmation
  C++

  [resolu] Conflit Virtuel Static ( Factory Design Pattern )

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[resolu] Conflit Virtuel Static ( Factory Design Pattern )

n°1378876
loupin
Posté le 01-06-2006 à 14:19:55  profilanswer
 

Bonjour a tous,
 
j ai un petit souci de conflit pour ma fonction create de ma classe c++.
 
Voila, j ai une classe qui herite d une classe abstraite. Je souhaite faire une factory (design pattern) et j essai de mettre une methode create dans chacun de mes objets. Tous mes types d objets heritent de la class A.
Donc le souci, c est que je souhaite que ma methode create deviennent alor un constructeur nomme, et donc je passe le contructeur de ma class B en private pour que seul la methode create puissent creer l objet. Mais le probleme que je rencontre est que je ne peux pa appeller la methode create avant que l objet soit creer, or c est celle ci qui doit le creer. Donc la solution, c est que je dois mettre la fonction en static, mais alor la , je ne respecte plus mon heritage qui dit que ma fonction create est virtuel . :pt1cable:  
Voici mes classes :  
 

Code :
  1. class A
  2. {
  3.     // plein de fonction virtuelles pures
  4.     virtual A* Create() = 0;
  5. }
  6. class B : public A
  7. {
  8.     private:
  9.          B();
  10.           //  membre prives de ma classe
  11.     public:
  12.          virtual A* Create();  // ici je dois mettre satic pour le constructeur mais ne respecte plus le virtual de A
  13.           // plein d autres fonction
  14.           // definition des fonctions virtuelle de A
  15. }


 
Voila, si vous savez comment je pourrais resoudre mon probleme.
 
Merci d avance pour vos reponse.  :hello:  
Cordialement.


Message édité par loupin le 01-06-2006 à 22:15:39
mood
Publicité
Posté le 01-06-2006 à 14:19:55  profilanswer
 

n°1379049
bjone
Insert booze to continue
Posté le 01-06-2006 à 15:58:37  profilanswer
 

spa possible.
 
tu mets un virtual clone() dans A pour pouvoir copier une classe dérivée, mais le create() doit être static tout court. (static et virtual pas compatible)
 
comment tu comptes déclencher ton Create() ?
 
par exemple moi je mets mes couples "mot clé/fonction de création" dans une hash_map<std::string,A*(*)()>, et crées mes instances depuis un fichier xml.

n°1379184
Taz
bisounours-codeur
Posté le 01-06-2006 à 17:54:55  profilanswer
 

non pas du tout.http://www.parashift.com/c++-faq-lite/virtual-functions.html#faq-20.8

n°1379238
bjone
Insert booze to continue
Posté le 01-06-2006 à 18:53:31  profilanswer
 

enfait j'ai du mal a saisir où il veut aller (en fait ça me parait être une impasse: il se bloque lui-même)

n°1379313
loupin
Posté le 01-06-2006 à 22:15:17  profilanswer
 

bon alor je pense avoir trouver, je suis en train de faire une joly factory, ca devrait le faire avec ca. J ai laisser tomber la static.
 
Merci


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

  [resolu] Conflit Virtuel Static ( Factory Design Pattern )

 

Sujets relatifs
Pas important : isset en Java ? [Résolu][Résolu] [VBS] Je cherche l'équivalent de net use * /delete /yes
[C#] * Résolu tout seul * Enregistrer une image avec un contourpb d edition de lien static
rech un reparateur de site en php "resolu"[RESOLU] copie de const char*
[résolu] Dépendances.htpasswd -> mdp en clair ?[RESOLU]
CHECKED et case à cocher : liste à partir d'une table [RESOLU][Résolu] Java - Jsp - ArrayList dans ArrayList
Plus de sujets relatifs à : [resolu] Conflit Virtuel Static ( Factory Design Pattern )


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