Еднократно претоварване на оператора
При претоварване на единична операция функцията на оператора няма параметри. Както в предишния случай, обектът, който се модифицира, имплицитно се предава на операторската функция, използвайки този указател.
Унарният оператор, подобно на двоичния, може да бъде претоварен по два начина:
- като функционален компонент без аргументи;
- като глобална функция с един аргумент.
Както знаете, унарният оператор може да бъде префикс и постфикс. За всеки префикс единен оператор изразът #а може да бъде представен по първия начин като a.operator # (), а за втория като #operator (a).
При претоварване на унарния оператор, използван в постфикс форма, израз като # може да бъде представен по първия начин като a.operator # (int) или как оператор # (a, int) с втория метод. В същото време аргумент от тип int не съществува и се използва за разграничаване на префикс и постфикс форми при претоварване.
По-долу е даден пример за програма за претоварване на оператора ++ и изпълнение на множество задания. За да се претовари унарният оператор ++, предшестващ оператора ++ i, се извиква функцията оператор ++ (). Ако операторът ++ следва операнда i ++, тогава се извиква функцията