Функция с именем 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++; } Префиксные и постфиксные операции декремента -- определяютсяаналогичным образом. R.14 ШАБЛОНЫ ТИПА R.14.1 Шаблоны типа Шаблон типа определяет целое семейство типов или функций. описание-шаблона-типа: template < список-параметров-шаблона-типа> описание список-параметров-шаблона-типа: параметр-шаблона-типа список-параметров-шаблона-типа, параметр-шаблона-типа параметр-шаблона-типа: параметр-типа описание-параметра параметр-типа: class идентификатор Конструкция описание в описании-шаблона-типа должна содержатьописание или определение функции или класса. В конструкции параметр-типа идентификатор определяется как имя-типав области видимости описания шаблона типа. Имена шаблонов типа подчиняются обычным правилам для областейвидимости и контроля доступа. Конструкция описание-шаблона-типасчитается описанием. Она может присутствовать в программе толькокак глобальное описание.