- •Наследование. Абстрактные классы. Виртуальные функции Контейнерные классы
- •Наследование
- •Простое наследование
- •Спецификаторы доступа базовых классов
- •Порядок вызова конструкторов
- •Порядок вызова деструкторов
- •Разрешение области видимости
- •Теперь вызов функции b.Fin1() приведет к вызову функции fun() класса a. Динамическое связывание в ооп (полиморфизм)
- •Наследование и таблица виртуальных функций
- •Абстрактные базовые классы
- •Виртуальные деструкторы
- •Механизм работы позднего связывания
- •Чистые виртуальные деструкторы
- •Виртуальные функции в деструкторах
- •Перегруженные функции при динамическом связывании
- •Множественное наследование
- •Что необходимо знать
- •Задания
Задания
Разработать систему классов студент, преподаватель, персона, заведующий кафедрой. Персона характеризуется датой рождения, именем, фамилией, контактными данными. Студент имеет студенческий билет и зачетную книжку, в которой хранится информация об оценках и предметах. Преподаватель характеризуется кафедрой и предметами, которые ведет у групп студентов. Заведующий кафедрой также характеризуется кафедрой, предметами, которые ведет у групп студентов.
Разработать программу с использованием наследования классов, реализующую классы: железнодорожный вагон; вагон для перевозки автомобилей; цистерна. Используя виртуальные функции, не зная с объектом какого класса работаете, выведите на экран его вес и количество единиц товара в вагоне.
Разработать программу с использованием наследования классов, реализующую классы: работник больницы; медсестра; хирург. Используя виртуальные функции, не зная с объектом какого класса вы работаете, выведите на экран возраст и название должности.
Построить систему классов для описания плоских геометрических фигур: круга, квадрата, прямоугольника. Предусмотреть методы для создания объектов, перемещения на плоскости, изменения размеров и вращения на заданный угол. Написать программу, демонстрирующую работу с этими классами. Программа должна содержать меню, позволяющее осуществить проверку всех методов классов.
Создать базовый класс «треугольник», описав в нём функции задания параметров треугольника, вывода их на экран, нахождения периметра и площади. Породить от него класс «прямоугольный треугольник», переопределив функции задания параметров и нахождения площади. Треугольник задается длинами сторон. При вводе параметров обязательно обеспечить проверку на существование треугольника. При задании параметров для объекта класса «прямоугольный треугольник» проверить, действительно ли задан прямоугольный треугольник.
Создать базовый класс «многоугольник», описав в нём функции задания количества и длин сторон, вывода параметров многоугольника на экран, нахождения периметра. Породить от него класс «правильный многоугольник» с числом вершин 3<=N<=6, переопределив в нём функции задания количества и длин сторон и нахождения периметра.
Создать базовый класс «прямоугольник», определив в нем функции ввода параметров прямоугольника, вывода их на экран и нахождения площади. Породить от него класс «квадрат», переопределив функции ввода параметров и нахождения площади.
Для предложенных тем выбрать 2-3 поля данных и 2-3 виртуальных метода для отображения и изменения значений полей:
Журнал, книга, печатное издание, учебник
Автомобиль, поезд, транспортное средство, экспресс
Млекопитающее, парнокопытное, птица, животное
Человек, отец, экономист, сын, дочь, внук.
