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 :
- class A
- {
- struct MyStruct;
- std::map<std::string, MyStruct*> myMap;
-
- A(){}
- ~A(){}
-
- addToMap(std::string s, MyStruct *m)
- {
- myMap[s] = m
- }
- }
- class B : A
- {
- struct MyStruct
- {
- int X;
- int Y
- };
- B()
- {
- MyStruct m;
- m.X = 2;
- m.Y = 3;
- addToMap("123", m); // <- c'est la ou ca pose probleme.
- }
- ~B(){}
- }
|
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