Ключевое слово operator объявляет функцию, которая указывает, что означает operator-symbol при применении к экземпляру класса. Это дает оператору более одного значения — "перегружает" его. Компилятор различает разные значения оператора, проверяя типы его операндов.
Функцию большинства встроенных операторов можно переопределить глобально или для отдельных классов. Перегруженные операторы реализуются в виде функции.
Перегруженный оператор имеет имя operator``x, где x означает оператор из следующей таблицы. Например, для перегрузки оператора сложения необходимо определить функцию operator+. Аналогично, для сложения/присвоения += необходимо определить функцию operator+=.
