Лабораторная работа №2 "Наследование." Порядок выполнения работы. Определить иерархию классов (в соответствии с вариантом). Определить в классе статическую компоненту -указатель на начало связанного списка объектов и статическую функцию для просмотра списка. Реализовать классы. Написать демонстрационную программу, в которой создаются объекты различных классов и помещаются в список, после чего список просматривается. Сделать соответствующие методы не виртуальными и посмотреть, что будет. Реализовать вариант, когда объект добавляется в список при создании, т.е. в конструкторе (смотри пункт 6 методических указаний). Методические указания. Для определения иерархии классов связать отношением наследования классы, приведенные в приложении (для заданного варианта). Из перечисленных классов выбрать один, который будет стоять во главе иерархии. Это абстрактный класс. Определить в классах все необходимые конструкторы и деструктор. Компонентные данные класса специфицировать как protected . Пример определения статических компонентов: static person* begin; // указатель на начало списка static void print(void); // просмотр списка Статическую компоненту-данное инициализировать вне определения класса, в глобальной области. Для добавления объекта в список предусмотреть метод класса, т.е. объект сам добавляет себя в список. Например, a.Add() ? объект a добавляет себя в список. Включение объекта в список можно выполнять при создании объекта, т.е. поместить операторы включения в конструктор. В случае иерархии классов, включение объекта в список должен выполнять только конструктор базового класса. Вы должны продемонстрировать оба этих способа. Список просматривать путем вызова виртуального метода Show каждого объекта. Статический метод просмотра списка вызывать не через объект, а через класс. Определение классов, их реализацию, демонстрационную программу поместить в отдельные файлы. Ваш вариант задания: Question 1 Классы: млекопитающие, парнокопытные, птицы, животное.