Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Запреты на перегрузку операций

Struct card | Int data; | Динамическое распределение памяти | Free(newPtr); | Очереди | Алгоритм как абстрактная машина | Сопоставление алгоритмических моделей | Формы рекурсивных процедур. | Пример рекурс алгоритмаЗадача о Ханойских башнях. | Program Hanoi_Towers; |


Читайте также:
  1. А23. Какая из названных операций относится к заключительному этапу Великой Отечественной войны
  2. Б. Запреты
  3. Бухгалтер и кассир в автоматизированном учете кассовых операций
  4. БУХГАЛТЕРСКИЙ УЧЕТ ОПЕРАЦИЙ ПО ЗАГРАНКОМАНДИРОВКАМ
  5. В условиях операций по поддержанию стабильности
  6. Виды внешнеторговых операций
  7. Внутренняя деятельность (do activity) - выполнение объектом операций или процедур, которые требуют определенного времени.

Большая часть операций С++ может быть перегружена. Эти операции приведены ниже.

Операции, которые могут быть перегружены
+ - * / % ^ & |
~ ! = < > += -= *=
/= %= ^= &= |= << >> >>=
<<= = = != <= >= && || ++
-- ->* , -> [] () new delete

Теперь приведем операции, которые не могут перегружаться.

Операции, которые не могут быть перегружены
. .* :: ?: sizeof

Приоритет операций не может быть изменен посредством перегрузки. Это может привести к неудобным ситуациям, когда операция перегружается так, что ее фиксированный приоритет плохо соответствует смыслу выполняемых действий. Тем не менее, остается возможность использовать скобки для опре­деления порядка оценки перегруженных операций в выражении.

Ассоциативность операций также не может быть изменена посредством перегрузки. Для перегрузки операций нельзя использовать аргументы по умолчанию.

Отсутствует возможность изменить число операндов, которое подразуме­вает операция. Одноместная операция остается одноместной и при перегрузке, а двухместная остается двухместной. Единственная трехместная операция С++, условная (?:), не может быть перегружена. Каждая из операций &, *, + и - имеет одноместную и двухместную формы, которые могут перегружаться раздельно.

Нельзя создавать новые операции; только существующие операции могут быть перегружены. Это запрещает программисту пользоваться такими попу­лярными нотациями, как операция **, означающая в языке Basic возведение в степень.

При перегрузке (), [ ], -> или = перегружающая операцию функция дол­жна объявляться как функция-элемент. Для других операций перегружаю­щие функции могут быть друзьями.

Перегрузка операции присваивания и операции суммирования с целью разрешить такие операции, как

object2 = object2 + object1;

не означает, что автоматически будет перегружена операция +=, чтобы выпол­нялся такой оператор, как

object2 += object1;

Однако такое поведение может быть достигнуто посредством явной пере­грузки операции += для этого класса.



Дата добавления: 2015-07-16; просмотров: 59 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Основные принципы перегрузки операций| Базовые и производные классы.

mybiblioteka.su - 2015-2024 год. (0.005 сек.)