re-bonjour,
Quelqu'un peut-il m'expliquer la différence entre un type polymorphique et un type valeur svp?
Merci,
Julien.
re-bonjour,
Quelqu'un peut-il m'expliquer la différence entre un type polymorphique et un type valeur svp?
Merci,
Julien.
Bonsoir,
Un objet polymorphique est un objet qui déclare des méthodes comme virtuelles (si tu ne sais pas ce que c'est qu'une méthode virtuelles tu peux trouver des explications sur cette page traitant de l'héritage : http://frog.isima.fr/antoine/heritage.shtml.
Si ce que tu appelle "type" correspond bien à la traduction que je lui ai donné, c.a.d. "classe" qui a l'avantage d'exister dans mon vocabulaire C++ (lequel est sans doute loin d'être exhaustif, je l'admet), je suppose que dans ce cas un type dit "valeur" serait donc une classe non polymorphique.
Ceci dit j'émets d'énormes réserves sur ce que j'avance car je ne vois pas en quoi le fait qu'un objet soit pomorphique ou non influence sur la façon dont on le caste. Dans tous les cas quand on caste de l'héritage, on utilise dynamique_cast...
On oppose généralement objets valeur aux objets entités.
- valeur == on s'intéresse à l'état, c'est copiable, affectable, et comparable (je ne sais plus si la défaut-initialisation est requise pour parler de valeur)
- objet régulier (plein d'articles de Stepanov sur le sujet) == cas particulier de valeur + dispose d'un ordre
- objet entité == on s'intéresse à l'identité et non plus à l'état ; la copie est rarement requise ; parfois la duplication, mais c'est rare
- objet polymorphe == cas particulier d'objet entité, il y a une notion de substituabilité en plus. Cas particulier car dans les faits, quand il y a un héritage, la copie devient vite cauchemardesque à mettre en oeuvre, mais heureusement, c'est bien souvent d'un objet dont on a besoin et pas d'un état. La présence de fonction membre virtuelles n'est pas un élément déterminant (bien que remarquable, et "indubitable" (les mots m'échappent)) des hiérarchies polymorphes.
Par extension, on oppose généralement "sémantique de valeur" et "sémantique d'entité".
Par croisements plus ou moins simples, il est possible d'avoir des types ni valeur ni entité, et des qui sont des deux familles.
Le "cours d'algorithmie" de Stepanov traite une partie de ces choses dans son "introduction".
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager