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

  FORUM HardWare.fr
  Programmation
  C++

  STD type et polymorphisme.

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

STD type et polymorphisme.

n°1811189
durk
Posté le 12-11-2008 à 15:12:37  profilanswer
 

Re-bonjour,
 
un nouveau souci...
J'ai crée un set qui contient des poiinteur sur Client.
A present je le remplis à partir d'une classe template avec un pointeur
sur un objet de type descendant (heritier) de Client, mais jamais un client.
 
A present je souhaite utiliser les operateur<< redefinis dans chaque classe
(client et filles). Mais chaque appel à cet operateur sur l'objet pointé par le set,
c'est la methode de client qui est utilisée.
 
Comme on ne peut definir une methode friend virtuel et que meme ca ne servirait à rien
ici puisque le type de l'argument de droite de l'operateur passerait de client à descendant  
suivant les cas, je ne vois pas comment solutionner ce probleme.
 
Ne devrait-il pas y avoir unappel à l'operateur du descedant??

mood
Publicité
Posté le 12-11-2008 à 15:12:37  profilanswer
 

n°1811197
Taz
bisounours-codeur
Posté le 12-11-2008 à 15:36:30  profilanswer
 

solution facile:
class Base { public: virtual void print(std::ostream& ) const; };
std::ostream& operator<<(std::ostream& os, const Base& b) { b.print(os); return os; }


Message édité par Taz le 12-11-2008 à 15:38:13
n°1811199
Taz
bisounours-codeur
Posté le 12-11-2008 à 15:37:29  profilanswer
 

Et ce qui se passe est normal, il n'y a pas de multiméthodes en C++, c'est donc par rapport au type statique des arguments de ce opérateur que la résolution se fait.

n°1811200
bjone
Insert booze to continue
Posté le 12-11-2008 à 15:38:35  profilanswer
 

fais toi un:
virtual ostream &stream_out( ostream & )  
et l'operator << qui utilise stream_out (et qui donc devrait utiliser celui de l'héritier)
 
edit: burned par taz


Message édité par bjone le 12-11-2008 à 15:39:07
n°1811416
durk
Posté le 13-11-2008 à 02:16:37  profilanswer
 

merci à tous, vos conseils m'ont bien aidé!


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

  STD type et polymorphisme.

 

Sujets relatifs
Probleme conflit de type[NHibernate] Question sur le type des propriétés/colonnes
simple question de type de variableProblème insoluble de transtypage
[résolu] [PHP] Forcer le type d'une variableComment afficher un value dans un input de type file
[C#] Récuperer le type de base d'un System.NullableMailto content type envoyer au format HTML
passing argument 1 of «NomFonction» from incompatible pointer type[JSF]erreur No Converter for type java.util.Date found
Plus de sujets relatifs à : STD type et polymorphisme.


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