[LCP] Ou [LAC] template et functor

Voir le sujet précédent Voir le sujet suivant Aller en bas

[LCP] Ou [LAC] template et functor

Message  erka le Lun 24 Mar 2008, 14:37

bonjour,

j'ai une petite question vis a vis de l'écriture d'une classe template dans mon cas ManipArbre qui permet de manipuler un arbre template... je dois comparer dans mon arbre les divers éléments le composant et sélectionner le noeud qui me convient ... soit mon problème est lié a l'écriture de la méthode template et de son appel


dans la classe manipArbre

Code:
 
template <typename NoeudT>
class ManipArbre{ 
        .......... 
        template <typename Compare>
        bool selectNoeud(NoeudT val,Compare compNoeud() ){... }

mon functor qui permet de comparer deux éléments
Code:
class CompGroupe{
        public bool operator()(const Groupe& g1, const Groupe& g2) const{
                return g1.getNomParent() == g2.getNomParent() && g1.getNom() == g2.getNom();
        }
};


et en dernier l'appel à la méthode template qui se trouve dans une classe hierarchie qui reprend bien un pointeur de ManipArbre
Code:
manipHierarchie->selectNoeud(unGroupe,CompGroupe());

j'ai fouillé un peut sur le web... mais j'ai trouvé beaucoup d'exemple pour la stl que j'ai essayé de mimer mais sans succès...

si quelqu'un a une idée ou a déjà rencontré un truc similaire ... ceci dit je suis peut être à coté de la plaque

erka

Nombre de messages : 495
Age : 29
Prénom : Julian
Statut : ancien reseaux
Localisation : Charleroi
Date d'inscription : 23/10/2006

http://www.vanden.be

Revenir en haut Aller en bas

Re: [LCP] Ou [LAC] template et functor

Message  nvs le Mar 01 Avr 2008, 03:02

je ne suis pas sûr de bien comprendre le problème que tu évoques. quoi qu'il en soit, si tu décides d'utiliser des objets fonction, il s'agit d'objet avant tout. lors des appels que tu fournis, des parenthèses ('(' et ')' ) inutiles apparaissent à divers endroits. la fonction est obtenue, par le compilateur, à partir de l'objet.

voici quelques codes sources qui, peut-être, t'aideront à y voir plus clair :

principal.cpp
tableau.hpp
ordre.hpp
ordreMieux.hpp




_________________

nvs

Nombre de messages : 5238
Age : 43
Prénom : Nicolas
Statut : prof
Localisation : bxl
Date d'inscription : 24/11/2005

http://nvansteenkiste.googlepages.com

Revenir en haut Aller en bas

Re: [LCP] Ou [LAC] template et functor

Message  nvs le Lun 07 Avr 2008, 01:30

il y a moyen d'écrire une classe de comparaison plus maligne. à la place d'écrire un modèle de classe, on écrit une simple classe dont l'opérateur fonction est lui un modèle. on ne doit alors plus explicitement renseigner le type des éléments à comparer lors de l'instanciation de l'objet. c'est le compilateur qui le détermine implicitement lors de la génération de la fonction de comparaison.

plus de détails ici :

principal.cpp
tableau.cpp
ordre.hpp
divers.h
ordreMieux.hpp
ordreEncoreMieux.hpp



_________________

nvs

Nombre de messages : 5238
Age : 43
Prénom : Nicolas
Statut : prof
Localisation : bxl
Date d'inscription : 24/11/2005

http://nvansteenkiste.googlepages.com

Revenir en haut Aller en bas

Re: [LCP] Ou [LAC] template et functor

Message  Contenu sponsorisé Aujourd'hui à 21:03


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum