Унарные и бинарные операторы при перегрузке в C++ отличаются количеством параметров у представляющей их функции. 1
Унарный оператор имеет один параметр, а бинарный — два. 1 Если оператор принимает два операнда, то первый операнд передаётся первому параметру функции, а второй операнд — второму параметру. 1
Унарные операции обычно возвращают новый объект, созданный на основе имеющегося. 1 Если унарная операция перегружается как функция-член, то она не должна иметь аргументов, так как в этом случае ей передаётся неявный аргумент-указатель this на текущий объект. 3 Если унарная операция перегружается дружественной функцией, то она должна иметь один аргумент — объект, для которого она выполняется. 3
Бинарная операция при перегрузке с использованием метода класса в качестве своего первого аргумента получает неявно переданную переменную класса (указатель this на объект), а в качестве второго — аргумент из списка параметров. 3 То есть фактически бинарная операция, перегружаемая методом класса, имеет один аргумент (правый операнд), а левый передаётся неявно через указатель this. 3