Bonjour a tous. Voici mon problème:
En fait, je déclare 2 classes filles d'une classe de base.
Ensuite, j'ai surchargé dans une 4eme classe une méthode, de sorte qu'elle agisse différement en fonction de la classe à laquelle appartient la donnéee passée en paramètre.
En fait, cela donne qqch du genre:
L'appel à la fonction process se fait comme suit:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 class A {//...} class B : public class A {//...} class C : public class A {//...} class Z { //... process (A* obj); process (B* obj); process (C* obj); }
Le problème, c'est que c'est la méthode process (A* obj) qui est appelée, et pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 A* obj = create_obj(int blabla);//renvoie soit un B*, soit un C* process(obj);
process (B* obj) ni même process (C* obj).
QQn a une solution?
Faut-il que dans process (A* obj) je vérifie le type du paramètre et appelle la surharge correspondante?
D'une manière plus générale, qqn sait-il où je peux trouver de la doc sur la façon dont fonctionne les surcharges?
Partager