R.13.4.7 Инкремент и декремент
R.13.4.7 Инкремент и декремент
Функция с именем operator++ и с одним параметром задает для объектов некоторого класса операцию префиксного инкремента ++. Функция с именем operator++ и с двумя параметрами задает для объектов некоторого класса операцию постфиксного инкремента ++. Для постфиксной операции ++ второй параметр должен быть типа int, и, когда в выражении встречается операция постфиксного инкремента, функция operator++ вызывается со вторым параметром, равным нулю. Приведем пример:
class X {
public:
X operator++(); // префиксная ++a
X operator++(int) // постфиксная a++
};
void f(X a)
{
++a; // a.operator++();
a++; // a.operator++(0);
a.operator++(); // явный вызов: действует как ++a;
a.operator++(0); // явный вызов: действует как a++;
}
Префиксные и постфиксные операции декремента - определяются аналогичным образом.