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

  FORUM HardWare.fr
  Programmation
  C++

  polymorphisme sur un struct en C++

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

polymorphisme sur un struct en C++

n°1476262
papynoel
Posté le 16-11-2006 à 12:07:01  profilanswer
 

Bonjour a tous,  
 
Je cherche a pouvoir redéfinir une structure définie dans une classe A dans une classe B et continuer a utiliser des fonctions de ma classe A qui utilisait cette structure.
Plutot qu'une longue explication, voila un exemple :  
 

Code :
  1. class A
  2. {
  3.     struct MyStruct;
  4.     std::map<std::string, MyStruct*> myMap;
  5.    
  6.     A(){}
  7.     ~A(){}
  8.    
  9.     addToMap(std::string s, MyStruct *m)
  10.     {
  11.         myMap[s] = m
  12.     }
  13. }
  14. class B : A
  15. {
  16.     struct MyStruct
  17.     {
  18.         int X;
  19.         int Y
  20.     };
  21.     B()
  22.     {
  23.         MyStruct m;
  24.         m.X = 2;
  25.         m.Y = 3;
  26.         addToMap("123", m); //  <- c'est la ou ca pose probleme.
  27.     }
  28.     ~B(){}
  29. }


 
L'erreur généré par le compilo :
error: no matching function for call to 'B::addToMap(std::string, B::addToMap*)'
 
Je ne comprends pas pourquoi j'ai pas le droit de faire ca et je me demande comment je dois écrire les choses pour que ca marche.
 
Je vous remercie d'avance pour vos réponses.
 
Papynoel

mood
Publicité
Posté le 16-11-2006 à 12:07:01  profilanswer
 

n°1476345
bb138
La vie est belle ...
Posté le 16-11-2006 à 13:46:20  profilanswer
 

Petit-Papy-Noel ?

n°1476672
ElDesdicha​do
Posté le 16-11-2006 à 16:48:24  profilanswer
 

Utilise des templates!!
 

Code :
  1. template<class X>
  2. class A
  3. {
  4. ...
  5. addToMap(..., X.MyStruct*)
  6. }
  7. class B : public A<B>
  8. {
  9. etc...
  10. }

Message cité 1 fois
Message édité par ElDesdichado le 16-11-2006 à 16:51:05
n°1477580
++fab
victime du syndrome IH
Posté le 17-11-2006 à 18:04:06  profilanswer
 

ElDesdichado a écrit :

Utilise des templates!!


Ah bon

n°1477584
++fab
victime du syndrome IH
Posté le 17-11-2006 à 18:10:20  profilanswer
 

papynoel a écrit :

Je cherche a pouvoir redéfinir une structure définie dans une classe A dans une classe B et continuer a utiliser des fonctions de ma classe A qui utilisait cette structure.


[snip le code non compilable]
A::MyStruct et B::MyStruct sont deux types différents. Peut-être qu'une définition de MyStruct dans le corps de A ferai l'affaire ?

Citation :

addToMap("123", m); //  <- c'est la ou ca pose probleme.


addToMap("123", &m);  le type de m doit être A::MyStruct


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

  polymorphisme sur un struct en C++

 

Sujets relatifs
[Résolu] modification d'une struct managée par un filtre directshowprob avec struct sockaddr_in et inet_addr
perl - struct wtmpx - recuperer adresse ip[linux][ext2fs] galere a trouver les entrées struct ext2_dir_entry
Surchage, héritage et polymorphismepolymorphisme
GetOpenFileName / Struct OpenFileNameProblème struct et affichage en colonne
Pourquoi c'est tellement lent ?[java] Classe abstraite, polymorphisme et tableau
Plus de sujets relatifs à : polymorphisme sur un struct en C++


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)