|
|
Функция с именем 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++; }
Префиксные и постфиксные операции декремента -- определяются аналогичным образом.
| |