Conflit Virtuel Static ( Factory Design Pattern ) [resolu] - C++ - Programmation
Marsh Posté le 01-06-2006 à 15:58:37
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.
Marsh Posté le 01-06-2006 à 17:54:55
non pas du tout.http://www.parashift.com/c++-faq-lite/virtual-functions.html#faq-20.8
Marsh Posté le 01-06-2006 à 18:53:31
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)
Marsh Posté le 01-06-2006 à 22:15:17
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
Marsh Posté le 01-06-2006 à 14:19:55
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 .
Voici mes classes :
Voila, si vous savez comment je pourrais resoudre mon probleme.
Merci d avance pour vos reponse.
Cordialement.
Message édité par loupin le 01-06-2006 à 22:15:39