Лабораторные работы. Рожков / Отчеты / OOPLaboratornayarabota4Otchet
.docxФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА» (СПбГУТ)
ФАКУЛЬТЕТ ИНФОКОММУНИКАЦИОННЫХ СЕТЕЙ И СИСТЕМ (ИКСС)
КАФЕДРА ПРОГРАММНОЙ ИНЖЕНЕРИИ И ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ (ПИ И ВТ)
Дисциплина: «ООП»
Лабораторная работа №4
Тема: «Виртуальные функции»
Вариант №24
Выполнил:
Студент группы ИКПИ-32
Яковлев Максим
Подпись ______________
Принял:
Рожков М.А.
Подпись ______________
Санкт-Петербург
2024 г.
Лабораторная работа №4
По теме: Виртуальные функции
Выполнил: Яковлев М. А.
Цель
Дополнить систему, состоящую из трех классов COne, CTwo и CThree, которые были разработаны в лабораторной работе 3, новым классом CFour. Новый класс должен быть связан public наследованием с классом CThree. Класс CFour должен иметь одно поля, которое выбирается студентом самостоятельно. Для разрабатываемого класса написать конструкторы умолчания, с параметрами и конструктор копирования, деструктор, методы доступа и метод print(). Метод print() в классах CTwo, CThree и CFour должен быть виртуальным. Написать тестовую программу для проверки работоспособности разработанных классов. Разработать глобальную функцию printAll(), имеющую два параметра: массив указателей типа CTwo* и количество элементов в этом массиве int n.
В тестовой программе массив указателей должен быть инициализирован адресами объектов типа CTwo, CThree и CFour.
Программа
Значение функций
Класс COne
• COne(): Конструктор по умолчанию, инициализирует d нулем и s пустой строкой.
• COne(double d, const std::string& s): Конструктор с параметрами, инициализирует d и s заданными значениями.
• COne(const COne& other): Конструктор копирования, создает копию объекта COne.
• : ~COne(): Деструктор
• getD(), setD(): Доступ к d.
• getS(), setS(): Доступ к s.
• Метод print(): Выводит значения полей d и s на консоль.
Класс CTwo:
• CTwo(): Конструктор по умолчанию, создает объект COne по умолчанию и инициализирует d нулем.
• CTwo(double d, double p_d, const std::string& p_s): Конструктор с параметрами, создает объект COne с заданными параметрами и инициализирует d.
• CTwo(const CTwo& other): Конструктор копирования, создает копию объекта CTwo, включая копию объекта COne.
• ~CTwo(): Деструктор Освобождает память, выделенную для p (указатель на COne).
• getD(), setD(): Доступ к d.
• getP(): Возвращает указатель на объект COne.
• setP(): Устанавливает значения полей объекта COne, на который указывает p.
• Метод print(): Выводит значения полей d и вызывает метод print() объекта COne, на который указывает p. Этот метод объявлен как виртуальный, что позволяет переопределять его в производных классах.
Класс CThree:
• CThree(): Конструктор по умолчанию, инициализирует поля базового класса CTwo и i нулем.
• CThree(double d, double p_d, const std::string& p_s, int i): Конструктор с параметрами, инициализирует поля базового класса CTwo и i.
• CThree(const CThree& other): Конструктор копирования, копирует поля базового класса CTwo и i.
• ~CThree(): Деструктор
• getI(), setI(): Доступ к i.
• Метод print(): Переопределяет виртуальный метод print() базового класса CTwo. Вызывает метод print() базового класса и выводит значение поля i.
Класс CFour:
• CFour(): Конструктор по умолчанию.
• CFour(double d, double p_d, const std::string& p_s, int i, char c): Конструктор с параметрами.
• CFour(const CFour& other): Конструктор копирования..
• ~CFour(): Деструктор
• getC(), setC(): Доступ к c.
• print(): Переопределяет виртуальный метод print() базового класса CThree. Вызывает метод print() базового класса и выводит значение поля c.
• printAll(): Принимает массив указателей на объекты типа CTwo и количество элементов в массиве.
Вывод
В данной работе была расширена система классов, разработанная в лабораторной работе №3, добавлением класса CFour. Реализованы конструкторы, деструктор, методы доступа и виртуальный метод print() для CFour. Разработана глобальная функция printAll(). Тестовая программа демонстрирует корректную работу программы.
