Лабораторная работа 3


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

1. Порядок выполнения работы.

1. Ознакомьтесь с теоретической частью.

2. Разберитесь с работой программ 1 — 3.

3. Выполните программу Test из приложения. Программа

состоит из двух модулей: test.cpp и set.cpp. Для совместной компиляции этих модулей создайте файл проекта Test.ide в Borland C++ 5.0 и выполните компиляцию.

4. Выполните индивидуальное задание.

2. Индивидуальные задания.

Для выполнения индивидуальных заданий взять за основу классы, созданные в лабораторной работе 2.

1. Создайте производный класс, который даст возможность выводить выражение и результат вычисления в определенное место на экране и в файл.

2. Создайте производный класс, который будет масштабировать заданные координаты и выводить в многоугольник сообщения, вводимые с клавиатуры.

3. Создайте производный класс, который будет накладывать нормальную кривую на вычерченную гистограмму.

4. Создайте производный класс, который вычерчивает на экране гистограмму и сохраняет в файле параметры этой гистограммы.

5. Создайте производный класс, который будет из файла выводить сообщения на текущее время, согласно введенному числу. Имя файла вводится с клавиатуры или является пара-метром по умолчанию.

6. Создайте производный класс, который будет изменять текущую дату, согласно введенному числу дней.

7. Создайте производный класс, который будет определять новый месяц, согласно введенному числу дней.

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

9. Создайте производный класс, который будет зашифровывать эту строку, распечатывать на экране и запоминать в файле.

10. Создайте производный класс, который будет соединять два и более файлов в один, копировать один в другой. Имена файлов задаются с клавиатуры или по умолчанию определяются в конструкторе.

11.Создайте производный класс, который будет сортировать знакомых на странице записной книжки по номеру телефона и выводить список знакомых по заданной букве алфавита.

12. Создайте производный класс, который будет определять долгожителя в заданном городе или всех городов, список жителей заданной улицы, дома.

3. Отчет по работе

— Название работы и ее цель;

— Ответы на поставленные вопросы в порядке проведения работы;

— Листинг разработанной и отлаженной программы индивидуального задания.

4. Вопросы по лабораторной работе

1. Что такое наследование? Объясните механизм наследования в С++.

2. Какое бывает наследование?

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

4. Какой класс называется базовым, а какой производным?

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

6. Что такое защищенные члены класса?

7. Как влияют спецификаторы public, protect, private на статус наследования?

8. Что такое виртуальные функции и как они определяются в базовом и производном классах?

9. Что такое полиморфизм?

10. Какая функция называется чисто виртуальной?

11. Какой класс называется абстрактным классом? Могут ли существовать экземпляры абстрактного класса?