En gros,qu'est-ce que le polymorphisme en C++?
Après plusieurs lectures de bouquins en C++,je n'arrive toujours pas à
vraiment comprendre ce que c'est(termes compliqués)
| Jean-Marc Bourguet wrote: | > Trognon Patrice writes: | > | >>max wrote: | >> | >> | >>>En gros,qu'est-ce que le polymorphisme en C++? Après | >>>plusieurs lectures de bouquins en C++,je n'arrive | >>>toujours pas à vraiment comprendre ce que c'est(termes | >>>compliqués) | >>> | >>>Merci. | >> | >>Bonsoir, | >> | >>Tout d'abord le polymorphisme n'est pas propre a C++ il | >>existe dans tous les languages objet, c'est donc avant | >>tout une des bases de l'objet. | > Le polymorphisme existe aussi en dehors des languages | > objets. Une fonction est polymorphisme si elle peut être | > appelée avec des arguments de type différents. On peut | > arguer si ce que Cardelli ("On understanding types, data | > abstraction, and polymorphism") appelle le polymorphisme ad | > hoc (celui résultant des conversions implicites et de la | > surcharge) est réellement du polymorphisme ou du sucre | > syntaxique camouflant du monomorphisme, mais la généricité | > (disponibles avec les templates en C++ -- mais les templates | > sont aussi une source de polymorphisme ad hoc avec les | > spécialisations explicites) est du polymorphisme. | > [Une explication du polymorphisme de substitution résultant | > de l'héritage] | > A+ | > | | Je pense qu'une des raisons pour lesquelles pas mal de personnes considèrent que les templates ne sont pas du vrai polymorphisme, -- | notamment les personnes originaires de la communauté des langages | fonctionnels -- c'est parce que les compilateurs engendrent une | version spécialisée du code pour chaque type d'instanciation, | rappelant en cela plus les foncteurs de SML que les fonctions | polymorphes des langages fonctionnels.
Mais la communauté SML considère ce type d'instantiation comme du polymorphisme ! As-tu regardé le papier de Cardelli et Wegner ?
-- Gaby
bruno_perso <nospam@nospam.com> writes:
| Jean-Marc Bourguet wrote:
| > Trognon Patrice <trognon.patrice@wanadoo.fr> writes:
| >
| >>max wrote:
| >>
| >>
| >>>En gros,qu'est-ce que le polymorphisme en C++? Après
| >>>plusieurs lectures de bouquins en C++,je n'arrive
| >>>toujours pas à vraiment comprendre ce que c'est(termes
| >>>compliqués)
| >>>
| >>>Merci.
| >>
| >>Bonsoir,
| >>
| >>Tout d'abord le polymorphisme n'est pas propre a C++ il
| >>existe dans tous les languages objet, c'est donc avant
| >>tout une des bases de l'objet.
| > Le polymorphisme existe aussi en dehors des languages
| > objets. Une fonction est polymorphisme si elle peut être
| > appelée avec des arguments de type différents. On peut
| > arguer si ce que Cardelli ("On understanding types, data
| > abstraction, and polymorphism") appelle le polymorphisme ad
| > hoc (celui résultant des conversions implicites et de la
| > surcharge) est réellement du polymorphisme ou du sucre
| > syntaxique camouflant du monomorphisme, mais la généricité
| > (disponibles avec les templates en C++ -- mais les templates
| > sont aussi une source de polymorphisme ad hoc avec les
| > spécialisations explicites) est du polymorphisme.
| > [Une explication du polymorphisme de substitution résultant
| > de l'héritage]
| > A+
| >
|
| Je pense qu'une des raisons pour lesquelles pas mal de personnes considèrent que les templates ne sont pas du vrai polymorphisme, --
| notamment les personnes originaires de la communauté des langages
| fonctionnels -- c'est parce que les compilateurs engendrent une
| version spécialisée du code pour chaque type d'instanciation,
| rappelant en cela plus les foncteurs de SML que les fonctions
| polymorphes des langages fonctionnels.
Mais la communauté SML considère ce type d'instantiation comme du
polymorphisme ! As-tu regardé le papier de Cardelli et Wegner ?
| Jean-Marc Bourguet wrote: | > Trognon Patrice writes: | > | >>max wrote: | >> | >> | >>>En gros,qu'est-ce que le polymorphisme en C++? Après | >>>plusieurs lectures de bouquins en C++,je n'arrive | >>>toujours pas à vraiment comprendre ce que c'est(termes | >>>compliqués) | >>> | >>>Merci. | >> | >>Bonsoir, | >> | >>Tout d'abord le polymorphisme n'est pas propre a C++ il | >>existe dans tous les languages objet, c'est donc avant | >>tout une des bases de l'objet. | > Le polymorphisme existe aussi en dehors des languages | > objets. Une fonction est polymorphisme si elle peut être | > appelée avec des arguments de type différents. On peut | > arguer si ce que Cardelli ("On understanding types, data | > abstraction, and polymorphism") appelle le polymorphisme ad | > hoc (celui résultant des conversions implicites et de la | > surcharge) est réellement du polymorphisme ou du sucre | > syntaxique camouflant du monomorphisme, mais la généricité | > (disponibles avec les templates en C++ -- mais les templates | > sont aussi une source de polymorphisme ad hoc avec les | > spécialisations explicites) est du polymorphisme. | > [Une explication du polymorphisme de substitution résultant | > de l'héritage] | > A+ | > | | Je pense qu'une des raisons pour lesquelles pas mal de personnes considèrent que les templates ne sont pas du vrai polymorphisme, -- | notamment les personnes originaires de la communauté des langages | fonctionnels -- c'est parce que les compilateurs engendrent une | version spécialisée du code pour chaque type d'instanciation, | rappelant en cela plus les foncteurs de SML que les fonctions | polymorphes des langages fonctionnels.
Mais la communauté SML considère ce type d'instantiation comme du polymorphisme ! As-tu regardé le papier de Cardelli et Wegner ?