La surcharge d'opérateurs est une fonctionnalité d'un langage de programmation qui permet des implémentations personnalisées pour les opérateurs en fonction des types d'opérandes impliqués. Certains langages permettent de définir de nouveaux opérateurs tandis que d'autres autorisent uniquement la redéfinition des opérateurs existants.