Услуга: Помогу выполнить - КМ-4. Более сложные элементы ООП. Домашнее задание
Описание
➡️ Готовые работы по курсу ⬅️
- СЕМИНАР 3. БОЛЕЕ СЛОЖНЫЕ ЭЛЕМЕНТЫ ОБЪЕКТНООРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ Цель семинара — освоение следующих элементов объектноориентированного программирования на С++: дружественные функции, конструктор копирования, переопределение операций.
1.Задание
1.Новые элементы добавляются в приложение обработки матриц семи- нара 1 (приложение с одним классом, без класса-наследника). Найдите или восстановите это приложение. Класс, имеющийся в этом приложе- нии, будем называть MATRIX. Результаты выполнения следующих пунк- тов 2-7 задания можно посмотреть в «Заготовке примера приложения » (параграф 2, следующий после Задания).
2.Добавьте в приложение класс VECTOR для обработки векторов. Ми- нимальный набор полей класса VECTOR: длина вектора и указатель на его начало. Минимальный набор методов класса VECTOR: конструктор, деструктор, ввод элементов вектора, вывод элементов вектора.
3.Добавьте в класс VECTOR конструктор копирования. Добавьте в функцию main инструкции, обеспечивающие вызов этих конструкторов копирования. Отладьте полученное приложение. Ответьте на вопросы: в каких случаях в классе должен быть конструктор копирования? При вы- полнении каких инструкций вызывается конструктор копирования?
4.В классе VECTOR переопределите операцию присваивания. Ответьте на вопрос: в каких ситуациях будет работать переопределенная операция присваивания? Напишите функцию main, которая проиллюстрирует ра- боту переопределенных операций присваивания. Отладьте полученное приложение.
5.Напишите функцию умножения матрицы на вектор, дружественную для обоих классов MATRIX и VECTOR. Обратите внимание, что прото- тип этой функции должен присутствовать в обоих классах, поэтому опи- санию класса MATRIX должно быть доступно описание класса VECTOR, а описанию класса VECTOR должно быть доступно описание класса MATRIX. Посмотрите, как для разрешения этой «цикличности» исполь- зуется краткое описание класса в Заготовке программы. Добавьте в функцию main приложения инструкции, обеспечивающие вызов этой
дружественной функции. Поясните назначение дружественных функций и выигрыш от их использования. Отладьте полученное приложение.
6.В классе VECTOR переопределите операцию умножения. Переопре- деленная операция умножения должна выполнять скалярное произведе- ние векторов. Напишите функцию main, которая проиллюстрирует рабо- ту переопределенных операций умножения. Отладьте полученное прило- жение.
7.В классе VECTOR переопределите операции вставки для консольного и файлового вывода и ввода вектора. См. Заготовку программы.
8.По аналогии с пунктами 3, 4, 6 для класса VECTOR выполните для класса MATRIX следующие задания. и отладьте полученное приложение:
1)Добавьте в класс MATRIX конструктор копирования.
2)В классе MATRIX переопределите операцию присваивания.
3)В классе MATRIX переопределите операцию умножения. Пере- определенная операция умножения должна выполнять умножение двух матриц по правилам линейной алгебры.
В функцию main добавьте операторы, тестирующие добавления этого пункта. Отладьте полученное приложение.
9.Отчет по семинару 3 должен содержать:
1)Условие индивидуальной задачи.
2)Словесное описание элементов классов.
3)Программный код приложения с ПОДРОБНЫМИ КОММЕН- ТАРИЯМИ, причем особое внимание следует обратить на коммен- тарии к добавленным в семинаре 3 фрагментам кода, в том числе к инструкциям функции main.
4)Тесты.
5)Ответы на вопросы, список которых приведен ниже.
Курс Объектно-ориентированное программирование (ИДДО ОП-Б-4-1-Экз)
Показать/скрыть дополнительное описаниеСЕМИНАР 3. БОЛЕЕ СЛОЖНЫЕ ЭЛЕМЕНТЫ ОБЪЕКТНООРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ Цель семинара — освоение следующих элементов объектноориентированного программирования на С++: дружественные функции, конструктор копирования, переопределение операций. .
Файлы условия, демо
Характеристики домашнего задания
Преподаватели
