Еще раз о перегрузке...
Сегодня мы с вами подводим итоги по перегрузке операторов. Поэтому в данном разделе мы остановимся на рассмотрении еще нескольких примеров. Оператор "круглые скобки".() Оператор "круглые скобки" чаще всего используется, в тех ситуациях, когда нам необходимо дать пользователю класса возможность изменить содержимое объекта уже после того, как последний создан. То есть, с помощью данного оператора мы убираем из класса функции типа SetValue:
Как видите, приведенный пример класса достаточно прост. Упростим его еще больше :))). Для этого используем "круглые скобки" со следующим синтаксисом:
Модифицируем код:
Достаточно просто, не правда ли??? Однако всегда есть особенности которые вам необходимо запомнить: 1. В отличие от бинарных и унарных операторов, оператор вызова функции может принимать любое количество аргументов (от 0 и больше), другими словами количество параметров функции ограничивается только здравым смыслом. 2. Перегруженный оператор вызова функции не изменяет механизма вызова функции, он изменяет только то, как оператор интерпретируется при его применении к объекту данного класса. Перегрузка операторов new, new[], delete, delete[] Сразу следует отметить, что операции new и delete предопределены для любого типа, в том числе и для абстрактного типа, определенного через механизм классов. То есть создавать их перегрузку в классе не обязательно. Однако, бывает необходимо использовать для объекта какой-то необычный способ выделения памяти. Для этого new и delete можно перегрузить. Например, нужно выделять память и, в случае отсутствия её, создавать файл на диске, в который будет записываться информация. Осуществить такую перегрузку очень просто. Рассмотрим общий синтаксис:
©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.
|