unaryOperators& operator++ (unaryOperators &one)
^^
- унарный оператор приращения, не являющийся членом префикса.
Оператор унарного постфикса, не являющийся членом, принимает дополнительный int
в качестве параметра применения политики.
unaryOperators operator++ (unaryOperators &one, int)
Ссылка:
C ++ 03 Стандарт 13.5.7 Увеличение и уменьшение [больше.inc]
Пользовательская функция под названием operator ++ реализует оператор префикса и постфикса ++. Если эта функция является функцией-членом без параметров или не-функцией с одним параметром класса или типа перечисления, она определяет оператор приращения префикса ++ для объектов этого типа. Если функция является функцией-членом с одним параметром (which shall be of type int
) или не-функцией с двумя параметрами (the second of which shall be of type int
), она определяет оператор приращения постфикса ++ для объектов этого типа . Когда приращение постфикса вызывается в результате использования оператора ++, аргумент int будет иметь значение ноль.125)
[Example:
class X {
public:
X& operator++(); // prefix ++a
X operator++(int); // postfix a++
};
class Y { };
Y& operator++(Y&); // prefix ++b
Y operator++(Y&, int); // postfix b++
void f(X a, Y b) {
++a; // a.operator++();
a++; // a.operator++(0);
++b; // operator++(b);
b++; // operator++(b, 0);
a.operator++(); // explicit call: like ++a;
a.operator++(0); // explicit call: like a++;
operator++(b); //explicit call: like ++b;
operator++(b, 0); // explicit call: like b++;
}
—end example]