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