Ok si un design permet la même chose sans downcasting alors il est meilleur. N’empêche que j’appelle pas ça une bidouille dans le sens ou c’est pas forcement un truc sale qui rend le code moins lisible. On est d’ailleurs obligé de l’utiliser avec certaines interfaces de l’API Java.
[quote]
Le polymorphisme c’est justement ça. Si tu a B qui hérite de A et qui surcharge une fonction foo, alors ta référence va appeler la bonne fonction. Après en C++ si tu fait une redéfinition (pas de mot clef virtual) alors non le polymorphisme ne s’opère pas. C’est d’ailleurs le seul langage que je connait qui fait ça les autres langages ont toutes leurs fonctions virtuelles.[/quote]
Oui ok y’a pas mal de langages ou les fonctions sont virtuelles par défauts (comme tu dis c’est tout l’interet), mais ça peut être modifié.