Создать класс, в котором реализовать функции для работы с одномерными массивами: а) получить пересечение элементов массивов; б) получить объединение элементов массивов. Память под массивы отводить динамически. Использовать конструктор с параметрами, конструктор копирования. Деструктор должен освобождать память, выделенную под массивы.
Написать класс для работы с символьными строками. Память под строку отводить динамически. Перегрузить операторы =, +, +=, ==, !=, [], ()(int, int). Продемонстрировать работу с этими операторами.
Реализовать наследование согласно диаграмме классов
Реализовать свой класс "список"(List)
Написать программу на основе лабораторных №3-4: Реализовать базовый класс ошибок, от него унаследовать несколько других классов (для проверки ввода числа, ввода строк и т.д.)
Написать функции для проверки ввода различных полей (имя, дата, номер карты…) и добавить их вызов при заполнении полей класса. В них генерировать исключения, например при неправильном вводе
if(str[i]<’A’||str[i]>’Z’) throw ExpVvod(123, “Вводите только прописными латинскими буквами.”);
При необходимости добавить генерацию ошибок на неправильное выделение памяти, выход за границы контейнера и т.п.
Задание выполнить на основе предыдущих лабораторных работ. Расшить функционал предыдущих работ. Написать функции для чтения/записи в файл в двух видах: текстовом и бинарном. В контейнер (разработанный в лабораторной работе №4) поместить несколько объектов из лабораторной работы №3, записать содержимое контейнера в файл и прочитать записанные данные обратно в контейнер. Для записи в бинарный файл следует использовать промежуточную структуру с фиксированным размером полей, если в исходном классе содержатся динамические поля. Продемонстрировать работу с текстовыми и бинарными файлами.
Продемонстрировать работу с vector и библиотекой algorithm