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