С ++ Перегрузка операций Класс для обслуживания структур типа "Очередь с приоритетами"
Создать класс PriorQueue для работы со структурами типа "Очередь с приоритетами".
Структура типа "Очередь с приоритетами" имеет такие же свойства, как и простая очередь, но элементы ее всегда расположены в определенном порядке. Составление структуры выполняется автоматически при добавлении нового элемента. Поэтому операция pop удаляет самый большой (или маленький) элемент очереди.
Для создания объекта динамического типа и правильного его изъятия предусмотреть соответствующие конструкторы и деструкторы. Для инициализации объектов предусмотреть конструктор копирования и конструкторы с параметрами.
Создать перегружены операции:
- присвоение, символ "=";
- сравнение, символы "==", "! =";
- введение с файла, символы "<<", ">>";
- вывод в файл, символы ">>", "<<".
Предусмотреть компонентные функции:
- size - количество элементов;
- empty - возвращает значение true, если очередь пуста;
- back - ссылка на последний элемент;
- swap - обмен значениями из другой очередь;
- push - добавить новый элемент в конец очереди;
- pop - влечет самый большой (маленький) элемент;
- find - проверить, есть ли предоставленный элемент в противне;
- accumulate - накопление суммы или произведения;
- for_each - обработка элементов по предоставленной процедурой.
Разработать демонстрационно-тестирующую программу. Выполнить тестирование разработанных программных средств.
Ответы на вопрос:
ереди.
Для создания объекта динамического типа и правильного его изъятия предусмотреть соответствующие конструкторы и деструкторы. Для инициализации объектов предусмотреть конструктор копирования и конструкторы с параметрами.
Создать перегружены операции:
- присвоение, символ "=";
- сравнение, символы "==", "! =";
- введение с файла, символы "<<", ">>";
- вывод в файл, символы ">>", "<<".
Предусмотреть компонентные функции:
- size - количество элементов;
- empty - возвращает значение true, если очередь пуста;
- back - ссылка на последний элемент;
- swap - обмен значениями из другой очередь;
- push - добавить новый элемент в конец очереди;
- pop - влечет самый большой (маленький) элемент;
- find - проверить, есть ли предоставленный элемент в противне;
- accumulate - накопление суммы или произведения;
- for_each - обработка элементов по предоставленной процедурой.
Разработать демонстрационно-тестирующую программу. Выполнить тестирование разработанных программных средств.Нигде не утверждается, что объект должен быть инициализирован, и программист может забыть инициализировать его или сделать это дважды.
ООП дает возможность программисту описать функцию, явно предназначенную для инициализации объектов. Поскольку такая функция конструирует значения данного типа, она называется конструктором. Конструктор всегда имеет то же имя, что и сам класс и никогда не имеет возвращаемого значения. Когда класс имеет конструктор, все объекты этого класса будут проинициализированы.Если конструктор требует аргументы, их следует указать:date today = date(6,4,2014); // полная форма
date xmas(25,12,0); // сокращенная форма
// date my_burthday; // недопустимо, опущена инициализация
Если необходимо обеспечить несколько инициализации объектов класса, задается несколько конструкторов:
class date {
int month, day, year;
public:
date(int, int, int); // день месяц год
date(char*); // дата в строковом представлении
date(); // дата по умолчанию: сегодня
};
Конструкторы подчиняются тем же правилам относительно типов параметров, что и перегруженные функции. Если конструкторы существенно различаются по типам своих параметров, то компилятор при каждом использовании может выбрать правильный:
date july4("Февраль 27, 2014");
date guy(27, 2, 2014);
date now; // инициализируется по умолчанию
Одним из сократить количество перегруженных функций (в том числе и конструкторов) является использование значений по умолчанию.
Конструктор по умолчанию
Конструктор, не требующий параметров, называется конструктором по умолчанию. Это может быть конструктор с пустым списком параметров или конструктор, в котором все аргументы имеют значения по умолчанию.
Конструкторы могут быть перегруженными, но конструктор по умолчанию может быть только один.
class date
{
int month, day, year;
public:
date(int, int, int);
date(char*);
date(); // конструктор по умолчанию
};
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
mandarinochkin10.11.2021 04:36
-
Miyazaki11.04.2022 05:27
-
проблемка419.12.2020 20:19
-
marinamarinam929.10.2022 02:47
-
RIGBY1920412.01.2022 02:51
-
valeriy3fors10.06.2021 19:23
-
ketrin030911.02.2022 05:53
-
Уляна200000220.09.2020 01:34
-
wenizi07.05.2023 12:13
-
5596464302.03.2021 09:10
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.