АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

ПЕРЕГРУЗКА ОПЕРАТОРОВ

Читайте также:
  1. Взаимная ортогональность собственных функций эрмитовых операторов
  2. Вложенные структуры условных операторов
  3. Действия операторов и налоговых органов
  4. Кодирование операторов GPSS/PC
  5. Обработка операторов DML посредством DBMS_SQL
  6. Перегрузка операций. Понятие перегрузки операторов. Синтаксис перегрузки операции. Перегрузка бинарных операций, операций сравнения.
  7. Перегрузка функций (методов класса). Почему следует использовать перегрузку. Перегрузка функций, перегрузка конструкторов.
  8. Перегрузка функций (методов класса). Создание и использование конструкторов копирования.
  9. Перегрузка шаблонов функций
  10. Перечень мер для операторов, являющихся государственными или муниципальными органами
  11. Расчет количества рабочих мест операторов РМТС

C++ позволяет переопределить действие большинства операций так, чтобы при использовании с объектами конкретного класса они выполняли заданные функции. Эта дает возможность использовать собственные типы данных точно так же, как стандартные. Обозначения собственных операций вводить нельзя.

Можно перегружать любые операции, существующие в C++, за исключением таких операций:

:: # sizeof

Перегрузка операций осуществляется с помощью методов специального вида и подчиняется следующим правилам:

· при перегрузке операций сохраняются количество аргументов, приоритеты операций и правила ассоциации, используемые в стандартных типах данных;

· для стандартных типов данных переопределять операции нельзя;

· функции-операции не могут иметь аргументов по умолчанию;

· функции-операции наследуются;

· функции-операции не могут определяться как static.

Функцию – операцию можно определить тремя способами:

1. она должна быть либо методом класса;

2. либо дружественной функцией класса;

3. либо обычной функцией.

Как дружественные функции класса или как обычные функции, она должна принимать хотя бы один аргумент имеющий тип класса, указатели или ссылки на класса (особый случай: функция операция, первый параметр которой имеет стандартный тип, не может определятся, как метод класса).

ДРУЗЬЯ

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

Правила описания и особенности дружественных функций.

1. Дружественная функция обхявляется внутри класса, к элементам которого ей нужен доступ, с ключевым словом friend. В качестве параметра ей должен передаваться объект или ссылка на объект класса.

2. Дружественная функция может быть обычной функцией или методом другого ранее определенного класса. На нее не распаяется действие спецификаторов доступа, место размещения ее объявления в классе безразлично

3. Одна функция может быть дружественной сразу нескольким классами.

Если все методы какого-либо класса должны иметь доступ к скрытым полям другого, весь класс объявляется дружественным с помощью ключевого слова friend.

Class hero{

Friend class mistress;

}

Class mistress{

Void fl(); void f2();}


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.)