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

  FORUM HardWare.fr
  Programmation
  C++

  Mauvais choix de méthode lors de surcharge d'opérateur

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Mauvais choix de méthode lors de surcharge d'opérateur

n°1959075
futtersack
Posté le 20-01-2010 à 14:28:51  profilanswer
 

Bonjour à tous,
 
pour un projet sur les polynomes (vous adorez :)), je cherche à redéfinir l'opérateur << suivant le type de coefficient des polynomes :
 
template <class T>
class Polynome
{
 int degre;
 T coefficient;
 Polynome * suivant;
...
        template <class U>
 friend std::ostream &operator<< (std::ostream &out, const Polynome<std::complex<U> > &p) //pour les polynomes à coefficients complexes
        {...}
 
        friend std::ostream &operator<< (std::ostream &out, const Polynome<T> &p) // pour les autres polynomes
        {...}
 
seulement, lors de l'execution sur un polynome complexe, le programme appelle la plus générique... Quelqu'un aurait-il une idée?
Merci encore.

mood
Publicité
Posté le 20-01-2010 à 14:28:51  profilanswer
 

n°1959276
Joel F
Real men use unique_ptr
Posté le 20-01-2010 à 21:25:45  profilanswer
 

les operator<< n'ont pas à etre friend.
Les friend tempalte c'ets souvent la cata à faire proprement. Sort moi ça de ta classe et ca devrait passer.
 
Et sinon:
 [:joel f:2]  
 
c'ets quoi ce Polynome* suivant ? std::vector c'ets pas pr les chiens

n°1959307
kirua_sama
Learn sciences with senses
Posté le 21-01-2010 à 07:45:32  profilanswer
 

Joel F a écrit :

les operator<< n'ont pas à etre friend.
Les friend tempalte c'ets souvent la cata à faire proprement. Sort moi ça de ta classe et ca devrait passer.
 
Et sinon:
 [:joel f:2]  
 
c'ets quoi ce Polynome* suivant ? std::vector c'ets pas pr les chiens


 
std::list j `aurais tendance a dire... non ?


---------------
“L'éducation est l'arme la plus puissante que l'on puisse utiliser pour changer le monde”
n°1959310
Joel F
Real men use unique_ptr
Posté le 21-01-2010 à 07:49:49  profilanswer
 

kirua_sama a écrit :


 
std::list j `aurais tendance a dire... non ?


 
ca depend de ce qu'il fait. La contiguité intrinséque de vector est peut etre interessante.

n°1959340
Un Program​meur
Posté le 21-01-2010 à 10:28:25  profilanswer
 

Le fond du problème ici, c'est que quand on a une surcharge entre l'instanciation d'un template de fonction et une fonction n'étant pas une instanciation de template, c'est cette dernière qui est choisie -- on peut appeler l'instanciation explicitement au prix d'une syntaxe plus lourde, surtout pour les opérateurs.


---------------
The truth is rarely pure and never simple (Oscar Wilde)
n°1959357
futtersack
Posté le 21-01-2010 à 11:23:45  profilanswer
 

Merci pour vos réponses, effectivement mon problème principal venait de la définition de la surcharge à l'intérieur de la classe alors qu'elle devait être placée en dehors.
Quant à l'utilisation de vector, je suis pas du tout spécialiste du c++ et apparement il existe une floppée de structures plus ou moins adéquates... Peut on accéder au reste de la liste à partir d'un élément de vector ou a-t-on besoin d'un programme chapeau pour gérer tout ca...? Les listes chaînées, c'est c-style mais ça marche très bien :)

n°1959404
Joel F
Real men use unique_ptr
Posté le 21-01-2010 à 13:02:41  profilanswer
 

futtersack a écrit :


Quant à l'utilisation de vector, je suis pas du tout spécialiste du c++ et apparement il existe une floppée de structures plus ou moins adéquates... Peut on accéder au reste de la liste à partir d'un élément de vector ou a-t-on besoin d'un programme chapeau pour gérer tout ca...? Les listes chaînées, c'est c-style mais ça marche très bien :)


 
RTFG :o
 
http://www.cppreference.com/wiki/stl/start
http://www.cppreference.com/wiki/stl/vector/start
http://www.cppreference.com/wiki/stl/list/start

n°1959445
__tomjost
c'est un pseudo !
Posté le 21-01-2010 à 15:18:14  profilanswer
 

futtersack a écrit :

Merci pour vos réponses, effectivement mon problème principal venait de la définition de la surcharge à l'intérieur de la classe alors qu'elle devait être placée en dehors.
Quant à l'utilisation de vector, je suis pas du tout spécialiste du c++ et apparement il existe une floppée de structures plus ou moins adéquates... Peut on accéder au reste de la liste à partir d'un élément de vector ou a-t-on besoin d'un programme chapeau pour gérer tout ca...? Les listes chaînées, c'est c-style mais ça marche très bien :)


 
 si tu trouve que les Les listes chaînées vont
 bien... et rapide pour ce que tu fait
 c'est resolu!  :ange:  
 
 pour c-style ou c++-style , il n ya pas une
 question de style , C++ est un C avec ++ ...et avec
 beacoup de function et lib aussi.

n°1959456
Joel F
Real men use unique_ptr
Posté le 21-01-2010 à 16:03:26  profilanswer
 

le c c'ets du c, le c++ c'ets du c++. Melangez les deux, c'ets se préparer à de grosses déconvenues.
 
les listes en c++, c'ets std::list. Point barre.

n°1959483
Xavier_OM
Monarchiste régicide (fr quoi)
Posté le 21-01-2010 à 18:00:51  profilanswer
 

Joel F a écrit :

le c c'ets du c, le c++ c'ets du c++. Melangez les deux, c'ets se préparer à de grosses déconvenues.
 
les listes en c++, c'ets std::list. Point barre.


 
So true  :o


---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
mood
Publicité
Posté le 21-01-2010 à 18:00:51  profilanswer
 

n°1959536
__tomjost
c'est un pseudo !
Posté le 21-01-2010 à 23:28:03  profilanswer
 


[:abnocte invictus] --------


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

  Mauvais choix de méthode lors de surcharge d'opérateur

 

Sujets relatifs
Probleme avec la methode OnUnloadprobleme de choix dans une base mysql a partir d'une date
[JAVA] Problème méthodeOperateur doublé
Remplir formulaire distant utilisant la méthode Postchainage d'appel surcharge operator
Intégration méthode d'EulerMéthode find et propriété after
choix du structure des donnéesLa methode Range de l'objet Worksheets a échoué
Plus de sujets relatifs à : Mauvais choix de méthode lors de surcharge d'opérateur


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