- •Разработка объектно-ориентированных программ
- •Методические указания
- •1. Методология программирования
- •1.1. Методология объектно-ориентированного
- •1.2. Методология объектно-ориентированного анализа
- •2. Особенности программирования в среде Windows
- •2.1 Разработка объектно-ориентированных программ
- •2.2. Разработка объектно-ориентированных программ
- •4. Лабораторный практикум
- •4.1. Лабораторная работа 1.
- •Общие сведения
- •Лабораторное задание
- •Варианты лабораторных заданий
- •Контрольные вопросы
- •4.2. Лабораторная работа 2.
- •Общие сведения
- •Лабораторное задание
- •Варианты лабораторных заданий
- •4.3. Лабораторная работа 3.
- •Общие сведения
- •Лабораторное задание
- •Варианты лабораторных заданий
- •4.4. Лабораторная работа 4.
- •Общие сведения
- •Лабораторное задание
- •4.5. Лабораторная работа 5.
- •Общие сведения.
- •Лабораторное задание
- •Варианты лабораторных заданий
- •4.6. Лабораторная работа 6.
- •Общие сведения.
- •Лабораторное задание
- •Варианты лабораторных заданий
- •4.7. Лабораторная работа 7.
- •Общие сведения.
- •Лабораторное задание.
- •Приложение а. Спецификации api-функций.
- •Приложение б. Основные классы mfc.
4.3. Лабораторная работа 3.
Механизм наследования классов.
Цель работы: изучить принципы наследования в языке С++, получить навыки работы с базовыми и производными классами.
Общие сведения
Механизм наследования вступает в силу при объявлении одного класса производным от другого (базового). При этом производный класс наследует (включает в свой состав) все открытые свойства и методы базового класса. Помимо этого производный класс может иметь и специфичные только для него свойства и методы, конкретизируя тем самым понятие, определяемое базовым классом.
При создании объекта производного класса вначале вызывается конструктор базового класса, а затем – производного. При определении функции-конструктора производного класса с параметрами следует также описать параметры и конструктора базового класса (если они необходимы). Деструкторы вызываются в обратном порядке.
Класс может быть производным от нескольких классов. В этом случае имеет место множественное наследование.
Лабораторное задание
В соответствии с вариантом лабораторного задания разработать производный класс. В качестве базовых служат классы, созданные в лабораторной работе 1. Разработать программу, формирующую список объектов производных классов. Спецификации производных классов даны в вариантах лабораторных заданий. Дополнить базовые классы методами, выполняющими сортировку списка по различным критериям и поиск объекта (объектов) в списке по заданным свойствам.
Тип проекта – Win32 Application (без MFC).
Варианты лабораторных заданий
Определить производный класс “Конкретная книга”. Класс должен включать следующие специфические свойства: название книги, количество страниц, цену и т.п.
Определить производный класс “Конкретное изделие”. Класс должен включать следующие специфические свойства: наименование изделия, завод-изготовитель, цена и т.п.
Определить производный класс “Автомобиль”. Класс должен включать следующие специфические свойства: модель, название, фирма-разработчик, объем двигателя, мощность, максимальная скорость и т.п.
Определить производный класс “Радиодеталь”. Класс должен включать следующие специфические свойства: тип, номинал, мощность и т.д.
Создать производный класс «Студент кафедры». Класс должен включать следующие специфические свойства: Ф.И.О., номер зачетной книжки, средний балл по результатам последней сессии и т.д.
Создать производный класс «житель города». Класс должен включать следующие специфические свойства: Ф.И.О., адрес, профессия, средний заработок и т.д.
Создать производный класс «квартира». Класс должен включать следующие специфические свойства: номер квартиры, этаж, общая и жилая площадь квартиры, количество проживающих и т.д.
Создать производный класс от класса «телевизор». Класс должен включать следующие специфические свойства: марка телевизора, в какой стране выполнена сборка, оптовая и розничная цена, срок гарантии и т д.
Создать производный класс от класса «геометрическая фигура». Определить специфические свойства, присущие производному классу. К производным классам можно отнести: окружность (радиус, центр), дуга окружности (радиус, центр, начальный и конечный угол), прямая линия (координаты начала и конца), точка (координаты), полилиния (массив линий) и т.п.
Определить производный класс «сервер», расширяющий функциональность базового класса «компьютер». Класс должен включать следующие специфические свойства: название, назначение, количество процессоров, тип операционной системы, объем дисковой памяти, наличие RAID-массива, тип сетевой карты и т.п.
Контрольные вопросы
Как описывается производный класс?
Как определяется видимость членов производных классов?
В чем заключается особенность вызова конструкторов при наследовании?
В чем заключается множественное наследование?