Перегрузка унарных операторов

Перегрузке могут быть подвергнуты следующие унарные операторы.

  1. ! (логическое НЕ)

  2. & (взятие адреса)

  3. ~ (дополнение до единицы)

  4. * (разыменование указателя)

  5. + (унарный плюс)

  6. - (унарное отрицание)

  7. ++ (инкремент)

  8. -- (декремент)

  9. операторы преобразования

Постфиксные операторы приращения и декремента (++ и ––) рассматриваются отдельно в разделе Приращение и декремент.

Операторы преобразования также обсуждаются в отдельном разделе (см. раздел Преобразования).

Следующие правила распространяются на все остальные унарные операторы. Чтобы объявить функцию унарного оператора как нестатический член, необходимо объявить ее в форме

ret-type operatorop**()**

где ret-type — возвращаемый тип, а op — один из операторов, перечисленных в предыдущей таблице.

Чтобы объявить функцию унарного оператора как глобальную функцию, необходимо объявить ее в форме

ret-type operatorop (arg )

где ret-type и op соответствуют описанию для функций-членов операторов, а arg — аргумент типа класса, с которым необходимо выполнить операцию.

Примечание

Не существует ограничения на возвращаемые типы унарных операторов.Например, логическому НЕ (!) имеет смысл возвращать целочисленное значение, однако это не реализовано принудительно.

См. также

Ссылки

Перегрузка операторов