Surcharge d’opérateur

La surcharge statique d’opérateur (également connue sous le nom de polymorphisme ad-hoc) est une technique de programmation où certains opérateurs, ou bien tous (comme +, = ou encore ==) peuvent être traités comme des fonctions et peuvent être définis ou redéfinis pour de nouveaux types de données. Les opérateurs ne sont pas nécessairement des symboles. Parfois la définition de nouveaux opérateurs est autorisée. Il s’agit généralement de sucre syntaxique, et peut facilement être émulé par des appels de fonction :

  • avec surcharge : a + b * c
  • sans surcharge : ajout (a, multiplie (b, c))

Dans le cas où les opérateurs peuvent être appelés implicitement, ils deviennent plus utiles qu’esthétiques. C’est le cas avec l’opérateur to_s de Ruby, qui retourne une représentation chaîne d’un objet et avec les opérateurs de PostgreSQL, où des transformations mathématiques peuvent être définies sur des opérateurs et PostgreSQL peut employer de nombreuses optimisations sur les expressions qui les utilisent.

Le polymorphisme ad-hoc ne doit pas être confondu avec le polymorphisme d’inclusion des langages à objets, permis par l’héritage de classe et la redéfinition de méthode. La sélection de l’opérateur adéquat a lieu à la compilation dans le premier cas, à l’exécution dans le second.

http://fr.wikipedia.org/wiki/Surcharge_des_op%C3%A9rateurs 

Texte disponible sous GNU Free Documentation License

Publicités
%d blogueurs aiment cette page :