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++;

}

Префиксные и постфиксные операции декремента - определяются аналогичным образом.