Bonjour à tous,
il m'arrive un truc stupide, et je ne parviens pas à trouver l'erreur:
J'ai une classe B qui hérite de A. Une classe C qui possède une méthode f et une méthode g décrites ci-après:
Je ne comprends pas: normalement, quand une classe hérite d'une autre, la conversion des pointeurs se fait automatiquement. Mais là ça ne marche pas, je reçois l'erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 class B: public A { [...] }; class C { [...] void f(A* a){}; void g(B* b){f(b);} //l'erreur est sur cette ligne };
Précision: A et B appartiennent à des namespaces différents, mais je ne pense pas que cela pose problème.error C2664: 'f' : cannot convert parameter 1 from 'const class B *' to 'const class A *'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
Avez-vous une idée de la raison pour laquelle cela ne fonctionne pas?
Partager