Перегрузка унарных операторов
Перегрузке могут быть подвергнуты следующие унарные операторы.
! (логическое НЕ)
& (взятие адреса)
+ (унарный плюс)
++ (инкремент)
-- (декремент)
операторы преобразования
Постфиксные операторы приращения и декремента (++ и ––) рассматриваются отдельно в разделе Приращение и декремент.
Операторы преобразования также обсуждаются в отдельном разделе (см. раздел Преобразования).
Следующие правила распространяются на все остальные унарные операторы. Чтобы объявить функцию унарного оператора как нестатический член, необходимо объявить ее в форме
ret-type operatorop**()**
где ret-type — возвращаемый тип, а op — один из операторов, перечисленных в предыдущей таблице.
Чтобы объявить функцию унарного оператора как глобальную функцию, необходимо объявить ее в форме
ret-type operatorop (arg )
где ret-type и op соответствуют описанию для функций-членов операторов, а arg — аргумент типа класса, с которым необходимо выполнить операцию.
Примечание
Не существует ограничения на возвращаемые типы унарных операторов.Например, логическому НЕ (!) имеет смысл возвращать целочисленное значение, однако это не реализовано принудительно.