Surcharges d'opérateurs La surcharge d'opérateurs n'est rien d'autre qu'une “douceur syntaxique,” ce qui signifie qu'il s'agit simplement d'une autre manière pour vous de faire un appel de fonction . La différence est que les arguments de cette fonction n'apparaissent pas entre parenthèses , mais qu'au contraire ils entourent ou sont près de symboles dont vous avez toujours pensé qu'ils étaient immuables. Il y a deux différences entre l'utilisation d'un opérateur et un appel de fonction ordinaire. La syntaxe est différente; un opérateurr est souvent “appelé” en le plaçant entre ou parfois après les arguments. La seconde différence est que le compilateur détermine quelle “fonction” appeler. Par exemple, si vous utilisez l'opérateur + avec des arguments flottants, le compilateur “appelle” la fonction pour effectuer l'addition des flottants (cet “appel” consiste principalement en l'insertion de code en-ligne (substitution de code à l'appel) , ou bien une instruction machine du prépocesseur arithmétique). Si vous utilisez l'opérateur + avec un flottant et un entier,le compilateur “appelle” une fonction spéciale pour convertir l' int en un float, puis après “appelle” le code d'addition des flottants. Mais en C++, il est possible de définir de nouveaux opérateurs qui fonctionnent avec les classes. Cette définition n'est rien d'autre qu'une définition de fonction ordinaire sauf que le nom de la fonction est constitué du mot-clé operator suivi par l'opérateur. C'est la seule différence, et cela devient une fonction comme toute autre fonction, que le compilateur appelle lorsqu'il voit le modèle correspondant.