C++ est un langage objet, puisqu'il reprend les principaux principes, mais, comme pratiquement tous les langages et pour des raisons de facilité d'utilisation il va plus loin et propose des fonctionnalités qui sorte du cadre de la conception purement objet.
On peut, en Java, caster un objet en une de ses sous-classes, si l'objet est du bon type (si c'était ça que tu voulais dire). Mais en C++ aussi, grâce à dynamic_cast.
Le typage dynamique permet juste de determiner le type d'un objet a l'execution. Il n'y a pas de controle a la compilation. Dans l'exemple que tu as cite le "cast" est controle a la compilation. L'un des avantages est de ne plus avoir de table de fonctions virtuelles et de pouvoir ajouter a l'execution un nouvel objet.
[^] # Re: IBM demande à Sun de "libérer" Java
Posté par Anonyme . En réponse à la dépêche IBM demande à Sun de "libérer" Java. Évalué à 2.
C++ est un langage objet, puisqu'il reprend les principaux principes, mais, comme pratiquement tous les langages et pour des raisons de facilité d'utilisation il va plus loin et propose des fonctionnalités qui sorte du cadre de la conception purement objet.
On peut, en Java, caster un objet en une de ses sous-classes, si l'objet est du bon type (si c'était ça que tu voulais dire). Mais en C++ aussi, grâce à dynamic_cast.
Le typage dynamique permet juste de determiner le type d'un objet a l'execution. Il n'y a pas de controle a la compilation. Dans l'exemple que tu as cite le "cast" est controle a la compilation. L'un des avantages est de ne plus avoir de table de fonctions virtuelles et de pouvoir ajouter a l'execution un nouvel objet.