**Цель работы:**  
- Изучить понятие перегрузки
- Приобрести практические навыки перегрузки отдельных операторов
  
**Задание:**  
1. Модифицируйте абстрактные типы данных, реализованные по заданию лабораторной работы №2, перегрузив минимум 3 ключевых оператора.
2. Обязательно перегрузите оператор вывода на консоль и один и операторов сравнения у АТД.
3. Используйте эти операторы в классе-контейнере, в первую очереди в функции сортировки и вывода элементов АТД.
4. Проверьте работоспособность АТД на тестовом наборе данных.
  
**Контрольные вопросы:**  
1. Назовите алгоритм соответствия для каждого аргумента.
2. С какой целью применяется перегрузка операторов?
3. Для каких операторов нельзя использовать перегрузку?
4. В каком случае используется функция-член, имеющая пустой список аргументов?
5. Что произойдет, если перегруженная операция $[$ $]$ будет иметь тип возвращаемого значения **int**, а не **int&**?