Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Простое наследование






 

Подготовка к работе. По указанной литературе и конспекту лекций повторить тему «Наследование».

Разработать программу в соответствии с заданием к лабораторной работе.

 

Задание.

1. Создать класс, инкапсулирующий свойства точки в двумерном пространстве, например, комплексного числа. Класс должен содержать не менее двух полей. Тип полей должен соответствовать типу элементов массива в таблице 1. Поля должны иметь режим доступа, позволяющий наследовать их производными классами.

Класс должен содержать не менее одного конструктора с аргументами, а также стандартный конструктор и деструктор. Во всех конструкторах и деструкторе должны находиться индикационные сообщения, аналогичные сообщениям в работе №3.

Предусмотреть в классе функцию вывода на экран полей класса.

2. В функции main() создать объекты базового класса с помощью каждого из конструкторов. Проверить работу конструкторов и деструктора класса. Проверить результат работы конструкторов с помощью функции вывода.

3. Создать второй класс на основе первого. Дополнить этот класс не менее чем одним полем любого типа. Предусмотреть в классе стандартный конструктор, конструктор с аргументами и деструктор. Количество аргументов у второго конструктора должно быть достаточным для инициализации всех полей производного класса, как собственных, так и унаследованных от базового класса. Часть аргументов должна передаваться конструктору базового класса. Конструкторы и деструктор производного класса также должны содержать индикационные сообщения.

Предусмотреть в классе функцию вывода на экран полей класса, которая должна вызывать аналогичную функцию базового класса.

4. В функции main() создать объекты производного класса при помощи каждого из его конструкторов. Проверить работу конструкторов и деструктора производного класса. Проверить результат работы конструкторов с помощью функции вывода. Проверить порядок создания объекта производного класса по индикационным сообщениям конструкторов. Таким же образом проверить порядок разрушения объекта. (При необходимости использовать динамический объект, явно удаляемый операцией delete.) Сделать выводы.

Сохранить файл с тестом программы для последующих работ.

 

Указания к выполнению работы.

Для производного класса должна сохраниться структура модулей, рассмотренная в работе №1.

Модуль с функциями производного класса нужно включить в главный модуль программы.

 

Контрольные вопросы.

1. Что такое наследование?

2. В чем заключаются преимущества использования наследования?

3. Какие компоненты базового класса могут быть унаследованы производным классом?

4. Как меняется режим доступа к компонентам классов при наследовании?

5. Каков формат указания базового класса при создании производного класса?

6. Как влияет спецификатор доступа, указываемый перед именем базового класса на режим доступа унаследованных компонент?

7. Как графически может быть отображено отношение наследования между классами?

8. Что означает понятие «иерархия классов»?

9. Почему базовые классы иногда называют «суперклассами»?

10. Можно ли изменить режим доступа к унаследованным компонентам базового класса в производном классе? Если да, то как это сделать?

11. Можно ли восстановить первоначальный режим доступа к компонентам базового класса, если в производном классе он был изменен? Если да, то как это сделать, и какие при этом имеются ограничения?

12. Наследуются ли производными классами конструкторы и деструкторы?

13. Как организуется взаимодействие конструкторов производного и базового классов?

14. Дублируются ли унаследованные компоненты базового класса в производном классе?

15. В каком случае у производного класса обязательно должен быть явно определенный конструктор?

16. В каком порядке создается объект производного класса?

17. Что означает понятие «подобъект базового класса»?

 

 

Лабораторная работа №6






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.